2#ifndef __clang_analyzer__
179#if !defined(DUK_INTERNAL_H_INCLUDED)
180#define DUK_INTERNAL_H_INCLUDED
196#define DUK_COMPILING_DUKTAPE
260#if !defined(DUK_DBLUNION_H_INCLUDED)
261#define DUK_DBLUNION_H_INCLUDED
270#if defined(DUK_USE_64BIT_OPS)
276#if defined(DUK_USE_PACKED_TVAL)
287#if defined(DUK_USE_DOUBLE_LE)
288#if defined(DUK_USE_64BIT_OPS)
289#define DUK_DBL_IDX_ULL0 0
291#define DUK_DBL_IDX_UI0 1
292#define DUK_DBL_IDX_UI1 0
293#define DUK_DBL_IDX_US0 3
294#define DUK_DBL_IDX_US1 2
295#define DUK_DBL_IDX_US2 1
296#define DUK_DBL_IDX_US3 0
297#define DUK_DBL_IDX_UC0 7
298#define DUK_DBL_IDX_UC1 6
299#define DUK_DBL_IDX_UC2 5
300#define DUK_DBL_IDX_UC3 4
301#define DUK_DBL_IDX_UC4 3
302#define DUK_DBL_IDX_UC5 2
303#define DUK_DBL_IDX_UC6 1
304#define DUK_DBL_IDX_UC7 0
305#define DUK_DBL_IDX_VP0 DUK_DBL_IDX_UI0
306#define DUK_DBL_IDX_VP1 DUK_DBL_IDX_UI1
307#elif defined(DUK_USE_DOUBLE_BE)
308#if defined(DUK_USE_64BIT_OPS)
309#define DUK_DBL_IDX_ULL0 0
311#define DUK_DBL_IDX_UI0 0
312#define DUK_DBL_IDX_UI1 1
313#define DUK_DBL_IDX_US0 0
314#define DUK_DBL_IDX_US1 1
315#define DUK_DBL_IDX_US2 2
316#define DUK_DBL_IDX_US3 3
317#define DUK_DBL_IDX_UC0 0
318#define DUK_DBL_IDX_UC1 1
319#define DUK_DBL_IDX_UC2 2
320#define DUK_DBL_IDX_UC3 3
321#define DUK_DBL_IDX_UC4 4
322#define DUK_DBL_IDX_UC5 5
323#define DUK_DBL_IDX_UC6 6
324#define DUK_DBL_IDX_UC7 7
325#define DUK_DBL_IDX_VP0 DUK_DBL_IDX_UI0
326#define DUK_DBL_IDX_VP1 DUK_DBL_IDX_UI1
327#elif defined(DUK_USE_DOUBLE_ME)
328#if defined(DUK_USE_64BIT_OPS)
329#define DUK_DBL_IDX_ULL0 0
331#define DUK_DBL_IDX_UI0 0
332#define DUK_DBL_IDX_UI1 1
333#define DUK_DBL_IDX_US0 1
334#define DUK_DBL_IDX_US1 0
335#define DUK_DBL_IDX_US2 3
336#define DUK_DBL_IDX_US3 2
337#define DUK_DBL_IDX_UC0 3
338#define DUK_DBL_IDX_UC1 2
339#define DUK_DBL_IDX_UC2 1
340#define DUK_DBL_IDX_UC3 0
341#define DUK_DBL_IDX_UC4 7
342#define DUK_DBL_IDX_UC5 6
343#define DUK_DBL_IDX_UC6 5
344#define DUK_DBL_IDX_UC7 4
345#define DUK_DBL_IDX_VP0 DUK_DBL_IDX_UI0
346#define DUK_DBL_IDX_VP1 DUK_DBL_IDX_UI1
356#define DUK_DBLUNION_SET_DOUBLE(u, v) \
361#define DUK_DBLUNION_SET_HIGH32(u, v) \
363 (u)->ui[DUK_DBL_IDX_UI0] = (duk_uint32_t) (v); \
366#if defined(DUK_USE_64BIT_OPS)
367#if defined(DUK_USE_DOUBLE_ME)
368#define DUK_DBLUNION_SET_HIGH32_ZERO_LOW32(u, v) \
370 (u)->ull[DUK_DBL_IDX_ULL0] = (duk_uint64_t) (v); \
373#define DUK_DBLUNION_SET_HIGH32_ZERO_LOW32(u, v) \
375 (u)->ull[DUK_DBL_IDX_ULL0] = ((duk_uint64_t) (v)) << 32; \
379#define DUK_DBLUNION_SET_HIGH32_ZERO_LOW32(u, v) \
381 (u)->ui[DUK_DBL_IDX_UI0] = (duk_uint32_t) (v); \
382 (u)->ui[DUK_DBL_IDX_UI1] = (duk_uint32_t) 0; \
386#define DUK_DBLUNION_SET_LOW32(u, v) \
388 (u)->ui[DUK_DBL_IDX_UI1] = (duk_uint32_t) (v); \
391#define DUK_DBLUNION_GET_DOUBLE(u) ((u)->d)
392#define DUK_DBLUNION_GET_HIGH32(u) ((u)->ui[DUK_DBL_IDX_UI0])
393#define DUK_DBLUNION_GET_LOW32(u) ((u)->ui[DUK_DBL_IDX_UI1])
395#if defined(DUK_USE_64BIT_OPS)
396#if defined(DUK_USE_DOUBLE_ME)
397#define DUK_DBLUNION_SET_UINT64(u, v) \
399 (u)->ui[DUK_DBL_IDX_UI0] = (duk_uint32_t) ((v) >> 32); \
400 (u)->ui[DUK_DBL_IDX_UI1] = (duk_uint32_t) (v); \
402#define DUK_DBLUNION_GET_UINT64(u) ((((duk_uint64_t) (u)->ui[DUK_DBL_IDX_UI0]) << 32) | ((duk_uint64_t) (u)->ui[DUK_DBL_IDX_UI1]))
404#define DUK_DBLUNION_SET_UINT64(u, v) \
406 (u)->ull[DUK_DBL_IDX_ULL0] = (duk_uint64_t) (v); \
408#define DUK_DBLUNION_GET_UINT64(u) ((u)->ull[DUK_DBL_IDX_ULL0])
410#define DUK_DBLUNION_SET_INT64(u, v) DUK_DBLUNION_SET_UINT64((u), (duk_uint64_t) (v))
411#define DUK_DBLUNION_GET_INT64(u) ((duk_int64_t) DUK_DBLUNION_GET_UINT64((u)))
440#if defined(DUK_USE_64BIT_OPS)
441#if defined(DUK_USE_DOUBLE_ME)
443#define DUK__DBLUNION_SET_NAN_FULL(u) \
445 (u)->ull[DUK_DBL_IDX_ULL0] = DUK_U64_CONSTANT(0x000000007ff80000); \
447#define DUK__DBLUNION_IS_NAN_FULL(u) \
448 ((((u)->ull[DUK_DBL_IDX_ULL0] & DUK_U64_CONSTANT(0x000000007ff00000)) == DUK_U64_CONSTANT(0x000000007ff00000)) && \
449 ((((u)->ull[DUK_DBL_IDX_ULL0]) & DUK_U64_CONSTANT(0xffffffff000fffff)) != 0))
450#define DUK__DBLUNION_IS_NORMALIZED_NAN_FULL(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x000000007ff80000))
451#define DUK__DBLUNION_IS_ANYINF(u) \
452 (((u)->ull[DUK_DBL_IDX_ULL0] & DUK_U64_CONSTANT(0xffffffff7fffffff)) == DUK_U64_CONSTANT(0x000000007ff00000))
453#define DUK__DBLUNION_IS_POSINF(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x000000007ff00000))
454#define DUK__DBLUNION_IS_NEGINF(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x00000000fff00000))
455#define DUK__DBLUNION_IS_ANYZERO(u) \
456 (((u)->ull[DUK_DBL_IDX_ULL0] & DUK_U64_CONSTANT(0xffffffff7fffffff)) == DUK_U64_CONSTANT(0x0000000000000000))
457#define DUK__DBLUNION_IS_POSZERO(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x0000000000000000))
458#define DUK__DBLUNION_IS_NEGZERO(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x0000000080000000))
461#define DUK__DBLUNION_SET_NAN_FULL(u) \
463 (u)->ull[DUK_DBL_IDX_ULL0] = DUK_U64_CONSTANT(0x7ff8000000000000); \
465#define DUK__DBLUNION_IS_NAN_FULL(u) \
466 ((((u)->ull[DUK_DBL_IDX_ULL0] & DUK_U64_CONSTANT(0x7ff0000000000000)) == DUK_U64_CONSTANT(0x7ff0000000000000)) && \
467 ((((u)->ull[DUK_DBL_IDX_ULL0]) & DUK_U64_CONSTANT(0x000fffffffffffff)) != 0))
468#define DUK__DBLUNION_IS_NORMALIZED_NAN_FULL(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x7ff8000000000000))
469#define DUK__DBLUNION_IS_ANYINF(u) \
470 (((u)->ull[DUK_DBL_IDX_ULL0] & DUK_U64_CONSTANT(0x7fffffffffffffff)) == DUK_U64_CONSTANT(0x7ff0000000000000))
471#define DUK__DBLUNION_IS_POSINF(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x7ff0000000000000))
472#define DUK__DBLUNION_IS_NEGINF(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0xfff0000000000000))
473#define DUK__DBLUNION_IS_ANYZERO(u) \
474 (((u)->ull[DUK_DBL_IDX_ULL0] & DUK_U64_CONSTANT(0x7fffffffffffffff)) == DUK_U64_CONSTANT(0x0000000000000000))
475#define DUK__DBLUNION_IS_POSZERO(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x0000000000000000))
476#define DUK__DBLUNION_IS_NEGZERO(u) ((u)->ull[DUK_DBL_IDX_ULL0] == DUK_U64_CONSTANT(0x8000000000000000))
480#define DUK__DBLUNION_SET_NAN_FULL(u) \
482 (u)->ui[DUK_DBL_IDX_UI0] = (duk_uint32_t) 0x7ff80000UL; \
483 (u)->ui[DUK_DBL_IDX_UI1] = (duk_uint32_t) 0x00000000UL; \
485#define DUK__DBLUNION_IS_NAN_FULL(u) \
486 ((((u)->ui[DUK_DBL_IDX_UI0] & 0x7ff00000UL) == 0x7ff00000UL) && \
487 (((u)->ui[DUK_DBL_IDX_UI0] & 0x000fffffUL) != 0 || (u)->ui[DUK_DBL_IDX_UI1] != 0))
488#define DUK__DBLUNION_IS_NORMALIZED_NAN_FULL(u) \
489 (((u)->ui[DUK_DBL_IDX_UI0] == 0x7ff80000UL) && ((u)->ui[DUK_DBL_IDX_UI1] == 0x00000000UL))
490#define DUK__DBLUNION_IS_ANYINF(u) \
491 ((((u)->ui[DUK_DBL_IDX_UI0] & 0x7fffffffUL) == 0x7ff00000UL) && ((u)->ui[DUK_DBL_IDX_UI1] == 0x00000000UL))
492#define DUK__DBLUNION_IS_POSINF(u) (((u)->ui[DUK_DBL_IDX_UI0] == 0x7ff00000UL) && ((u)->ui[DUK_DBL_IDX_UI1] == 0x00000000UL))
493#define DUK__DBLUNION_IS_NEGINF(u) (((u)->ui[DUK_DBL_IDX_UI0] == 0xfff00000UL) && ((u)->ui[DUK_DBL_IDX_UI1] == 0x00000000UL))
494#define DUK__DBLUNION_IS_ANYZERO(u) \
495 ((((u)->ui[DUK_DBL_IDX_UI0] & 0x7fffffffUL) == 0x00000000UL) && ((u)->ui[DUK_DBL_IDX_UI1] == 0x00000000UL))
496#define DUK__DBLUNION_IS_POSZERO(u) (((u)->ui[DUK_DBL_IDX_UI0] == 0x00000000UL) && ((u)->ui[DUK_DBL_IDX_UI1] == 0x00000000UL))
497#define DUK__DBLUNION_IS_NEGZERO(u) (((u)->ui[DUK_DBL_IDX_UI0] == 0x80000000UL) && ((u)->ui[DUK_DBL_IDX_UI1] == 0x00000000UL))
500#define DUK__DBLUNION_SET_NAN_NOTFULL(u) \
502 (u)->us[DUK_DBL_IDX_US0] = 0x7ff8UL; \
505#define DUK__DBLUNION_IS_NAN_NOTFULL(u) \
507 ((((u)->us[DUK_DBL_IDX_US0] & 0x7ff0UL) == 0x7ff0UL) && (((u)->us[DUK_DBL_IDX_US0] & 0x000fUL) != 0x0000UL))
509#define DUK__DBLUNION_IS_NORMALIZED_NAN_NOTFULL(u) \
511 ((u)->us[DUK_DBL_IDX_US0] == 0x7ff8UL)
513#define DUK__DBLUNION_NORMALIZE_NAN_CHECK_FULL(u) \
515 if (DUK__DBLUNION_IS_NAN_FULL((u))) { \
516 DUK__DBLUNION_SET_NAN_FULL((u)); \
520#define DUK__DBLUNION_NORMALIZE_NAN_CHECK_NOTFULL(u) \
523 if (DUK__DBLUNION_IS_NAN_FULL((u))) { \
524 DUK__DBLUNION_SET_NAN_NOTFULL((u)); \
534#if defined(DUK_USE_PACKED_TVAL)
535#define DUK_DBLUNION_NORMALIZE_NAN_CHECK(u) DUK__DBLUNION_NORMALIZE_NAN_CHECK_FULL((u))
536#define DUK_DBLUNION_IS_NAN(u) DUK__DBLUNION_IS_NAN_FULL((u))
537#define DUK_DBLUNION_IS_NORMALIZED_NAN(u) DUK__DBLUNION_IS_NORMALIZED_NAN_FULL((u))
538#define DUK_DBLUNION_SET_NAN(d) DUK__DBLUNION_SET_NAN_FULL((d))
540#define DUK_DBLUNION_NORMALIZE_NAN_CHECK(u) DUK__DBLUNION_NORMALIZE_NAN_CHECK_NOTFULL((u))
541#define DUK_DBLUNION_IS_NAN(u) DUK__DBLUNION_IS_NAN_NOTFULL((u))
542#define DUK_DBLUNION_IS_NORMALIZED_NAN(u) DUK__DBLUNION_IS_NORMALIZED_NAN_NOTFULL((u))
543#define DUK_DBLUNION_SET_NAN(d) DUK__DBLUNION_SET_NAN_NOTFULL((d))
545#define DUK_DBLUNION_IS_NORMALIZED(u) \
546 (!DUK_DBLUNION_IS_NAN((u)) || \
547 DUK_DBLUNION_IS_NORMALIZED_NAN((u)))
549#define DUK_DBLUNION_NORMALIZE_NAN_CHECK(u)
550#define DUK_DBLUNION_IS_NAN(u) DUK__DBLUNION_IS_NAN_FULL((u))
551#define DUK_DBLUNION_IS_NORMALIZED_NAN(u) DUK__DBLUNION_IS_NAN_FULL((u))
552#define DUK_DBLUNION_IS_NORMALIZED(u) 1
553#define DUK_DBLUNION_SET_NAN(u) \
556 (u)->d = DUK_DOUBLE_NAN; \
560#define DUK_DBLUNION_IS_ANYINF(u) DUK__DBLUNION_IS_ANYINF((u))
561#define DUK_DBLUNION_IS_POSINF(u) DUK__DBLUNION_IS_POSINF((u))
562#define DUK_DBLUNION_IS_NEGINF(u) DUK__DBLUNION_IS_NEGINF((u))
564#define DUK_DBLUNION_IS_ANYZERO(u) DUK__DBLUNION_IS_ANYZERO((u))
565#define DUK_DBLUNION_IS_POSZERO(u) DUK__DBLUNION_IS_POSZERO((u))
566#define DUK_DBLUNION_IS_NEGZERO(u) DUK__DBLUNION_IS_NEGZERO((u))
571#define DUK_DBLUNION_BSWAP64(u) \
573 duk_uint32_t duk__bswaptmp1, duk__bswaptmp2; \
574 duk__bswaptmp1 = (u)->ui[0]; \
575 duk__bswaptmp2 = (u)->ui[1]; \
576 duk__bswaptmp1 = DUK_BSWAP32(duk__bswaptmp1); \
577 duk__bswaptmp2 = DUK_BSWAP32(duk__bswaptmp2); \
578 (u)->ui[0] = duk__bswaptmp2; \
579 (u)->ui[1] = duk__bswaptmp1; \
585#if defined(DUK_USE_DOUBLE_LE)
586#define DUK_DBLUNION_DOUBLE_HTON(u) \
588 duk_uint32_t duk__bswaptmp1, duk__bswaptmp2; \
589 duk__bswaptmp1 = (u)->ui[0]; \
590 duk__bswaptmp2 = (u)->ui[1]; \
591 duk__bswaptmp1 = DUK_BSWAP32(duk__bswaptmp1); \
592 duk__bswaptmp2 = DUK_BSWAP32(duk__bswaptmp2); \
593 (u)->ui[0] = duk__bswaptmp2; \
594 (u)->ui[1] = duk__bswaptmp1; \
596#elif defined(DUK_USE_DOUBLE_ME)
597#define DUK_DBLUNION_DOUBLE_HTON(u) \
599 duk_uint32_t duk__bswaptmp1, duk__bswaptmp2; \
600 duk__bswaptmp1 = (u)->ui[0]; \
601 duk__bswaptmp2 = (u)->ui[1]; \
602 duk__bswaptmp1 = DUK_BSWAP32(duk__bswaptmp1); \
603 duk__bswaptmp2 = DUK_BSWAP32(duk__bswaptmp2); \
604 (u)->ui[0] = duk__bswaptmp1; \
605 (u)->ui[1] = duk__bswaptmp2; \
607#elif defined(DUK_USE_DOUBLE_BE)
608#define DUK_DBLUNION_DOUBLE_HTON(u) \
612#error internal error, double endianness insane
616#define DUK_DBLUNION_DOUBLE_NTOH(u) DUK_DBLUNION_DOUBLE_HTON((u))
619#if defined(DUK_USE_64BIT_OPS)
620#define DUK_DBLUNION_HAS_SIGNBIT(u) (((u)->ull[DUK_DBL_IDX_ULL0] & DUK_U64_CONSTANT(0x8000000000000000)) != 0)
621#define DUK_DBLUNION_GET_SIGNBIT(u) (((u)->ull[DUK_DBL_IDX_ULL0] >> 63U))
623#define DUK_DBLUNION_HAS_SIGNBIT(u) (((u)->ui[DUK_DBL_IDX_UI0] & 0x80000000UL) != 0)
624#define DUK_DBLUNION_GET_SIGNBIT(u) (((u)->ui[DUK_DBL_IDX_UI0] >> 31U))
633#if !defined(DUK_FLTUNION_H_INCLUDED)
634#define DUK_FLTUNION_H_INCLUDED
647#if defined(DUK_USE_DOUBLE_LE) || defined(DUK_USE_DOUBLE_ME)
648#define DUK_FLT_IDX_UI0 0
649#define DUK_FLT_IDX_US0 1
650#define DUK_FLT_IDX_US1 0
651#define DUK_FLT_IDX_UC0 3
652#define DUK_FLT_IDX_UC1 2
653#define DUK_FLT_IDX_UC2 1
654#define DUK_FLT_IDX_UC3 0
655#elif defined(DUK_USE_DOUBLE_BE)
656#define DUK_FLT_IDX_UI0 0
657#define DUK_FLT_IDX_US0 0
658#define DUK_FLT_IDX_US1 1
659#define DUK_FLT_IDX_UC0 0
660#define DUK_FLT_IDX_UC1 1
661#define DUK_FLT_IDX_UC2 2
662#define DUK_FLT_IDX_UC3 3
669#if !defined(DUK_REPLACEMENTS_H_INCLUDED)
670#define DUK_REPLACEMENTS_H_INCLUDED
672#if !defined(DUK_SINGLE_FILE)
673#if defined(DUK_USE_COMPUTED_INFINITY)
676#if defined(DUK_USE_COMPUTED_NAN)
681#if defined(DUK_USE_REPL_FPCLASSIFY)
684#if defined(DUK_USE_REPL_SIGNBIT)
687#if defined(DUK_USE_REPL_ISFINITE)
690#if defined(DUK_USE_REPL_ISNAN)
693#if defined(DUK_USE_REPL_ISINF)
709#if !defined(DUK_JMPBUF_H_INCLUDED)
710#define DUK_JMPBUF_H_INCLUDED
712#if defined(DUK_USE_CPP_EXCEPTIONS)
729#if !defined(DUK_EXCEPTION_H_INCLUDED)
730#define DUK_EXCEPTION_H_INCLUDED
732#if defined(DUK_USE_CPP_EXCEPTIONS)
738class duk_internal_exception {
747class duk_fatal_exception :
public virtual std::runtime_error {
749 duk_fatal_exception(
const char *message) : std::runtime_error(message) {
760#if !defined(DUK_FORWDECL_H_INCLUDED)
761#define DUK_FORWDECL_H_INCLUDED
767#if defined(DUK_USE_CPP_EXCEPTIONS)
768class duk_internal_exception;
807#if defined(DUK_USE_DEBUG)
808struct duk_fixedbuffer;
828#if defined(DUK_USE_CPP_EXCEPTIONS)
868#if defined(DUK_USE_DEBUG)
869typedef struct duk_fixedbuffer duk_fixedbuffer;
909#if !defined(DUK_TVAL_H_INCLUDED)
910#define DUK_TVAL_H_INCLUDED
913#if !defined(DUK_USE_DOUBLE_LE) && !defined(DUK_USE_DOUBLE_ME) && !defined(DUK_USE_DOUBLE_BE)
914#error unsupported: cannot determine byte order variant
917#if defined(DUK_USE_PACKED_TVAL)
934#define DUK_TAG_NORMALIZED_NAN 0x7ff8UL
936#define DUK_TAG_MIN 0xfff1UL
937#if defined(DUK_USE_FASTINT)
938#define DUK_TAG_FASTINT 0xfff1UL
940#define DUK_TAG_UNUSED 0xfff2UL
941#define DUK_TAG_UNDEFINED 0xfff3UL
942#define DUK_TAG_NULL 0xfff4UL
943#define DUK_TAG_BOOLEAN 0xfff5UL
945#define DUK_TAG_POINTER 0xfff6UL
946#define DUK_TAG_LIGHTFUNC 0xfff7UL
947#define DUK_TAG_STRING 0xfff8UL
948#define DUK_TAG_OBJECT 0xfff9UL
949#define DUK_TAG_BUFFER 0xfffaUL
950#define DUK_TAG_MAX 0xfffaUL
953#define DUK_XTAG_BOOLEAN_FALSE 0xfff50000UL
954#define DUK_XTAG_BOOLEAN_TRUE 0xfff50001UL
956#define DUK_TVAL_IS_VALID_TAG(tv) (DUK_TVAL_GET_TAG((tv)) - DUK_TAG_MIN <= DUK_TAG_MAX - DUK_TAG_MIN)
959#define DUK_TVAL_UNUSED_INITIALIZER() \
960 { DUK_TAG_UNUSED, DUK_TAG_UNUSED, DUK_TAG_UNUSED, DUK_TAG_UNUSED }
963#if defined(DUK_USE_64BIT_OPS)
964#if defined(DUK_USE_DOUBLE_ME)
965#define DUK__TVAL_SET_TAGGEDPOINTER(tv, h, tag) \
967 (tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) (tag)) << 16) | (((duk_uint64_t) (duk_uint32_t) (h)) << 32); \
970#define DUK__TVAL_SET_TAGGEDPOINTER(tv, h, tag) \
972 (tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) (tag)) << 48) | ((duk_uint64_t) (duk_uint32_t) (h)); \
976#define DUK__TVAL_SET_TAGGEDPOINTER(tv, h, tag) \
980 duk__tv->ui[DUK_DBL_IDX_UI0] = ((duk_uint32_t) (tag)) << 16; \
981 duk__tv->ui[DUK_DBL_IDX_UI1] = (duk_uint32_t) (h); \
985#if defined(DUK_USE_64BIT_OPS)
987#if defined(DUK_USE_DOUBLE_ME)
988#define DUK__TVAL_SET_LIGHTFUNC(tv, fp, flags) \
990 (tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) DUK_TAG_LIGHTFUNC) << 16) | ((duk_uint64_t) (flags)) | \
991 (((duk_uint64_t) (duk_uint32_t) (fp)) << 32); \
994#define DUK__TVAL_SET_LIGHTFUNC(tv, fp, flags) \
996 (tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) DUK_TAG_LIGHTFUNC) << 48) | (((duk_uint64_t) (flags)) << 32) | \
997 ((duk_uint64_t) (duk_uint32_t) (fp)); \
1001#define DUK__TVAL_SET_LIGHTFUNC(tv, fp, flags) \
1003 duk_tval *duk__tv; \
1005 duk__tv->ui[DUK_DBL_IDX_UI0] = (((duk_uint32_t) DUK_TAG_LIGHTFUNC) << 16) | ((duk_uint32_t) (flags)); \
1006 duk__tv->ui[DUK_DBL_IDX_UI1] = (duk_uint32_t) (fp); \
1010#if defined(DUK_USE_FASTINT)
1012#if defined(DUK_USE_DOUBLE_ME)
1013#define DUK__TVAL_SET_I48(tv, i) \
1015 duk_tval *duk__tv; \
1017 duk__tv->ui[DUK_DBL_IDX_UI0] = \
1018 ((duk_uint32_t) DUK_TAG_FASTINT) << 16 | (((duk_uint32_t) ((i) >> 32)) & 0x0000ffffUL); \
1019 duk__tv->ui[DUK_DBL_IDX_UI1] = (duk_uint32_t) (i); \
1021#define DUK__TVAL_SET_U32(tv, i) \
1023 duk_tval *duk__tv; \
1025 duk__tv->ui[DUK_DBL_IDX_UI0] = ((duk_uint32_t) DUK_TAG_FASTINT) << 16; \
1026 duk__tv->ui[DUK_DBL_IDX_UI1] = (duk_uint32_t) (i); \
1029#define DUK__TVAL_SET_I48(tv, i) \
1031 (tv)->ull[DUK_DBL_IDX_ULL0] = \
1032 (((duk_uint64_t) DUK_TAG_FASTINT) << 48) | (((duk_uint64_t) (i)) & DUK_U64_CONSTANT(0x0000ffffffffffff)); \
1034#define DUK__TVAL_SET_U32(tv, i) \
1036 (tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) DUK_TAG_FASTINT) << 48) | (duk_uint64_t) (i); \
1041#define DUK__TVAL_SET_I32(tv, i) \
1043 duk_int64_t duk__tmp = (duk_int64_t) (i); \
1044 DUK_TVAL_SET_I48((tv), duk__tmp); \
1048#if defined(DUK_USE_DOUBLE_ME)
1049#define DUK__TVAL_GET_FASTINT(tv) \
1050 (((duk_int64_t) ((((duk_uint64_t) (tv)->ui[DUK_DBL_IDX_UI0]) << 32) | ((duk_uint64_t) (tv)->ui[DUK_DBL_IDX_UI1]))) \
1054#define DUK__TVAL_GET_FASTINT(tv) ((((duk_int64_t) (tv)->ull[DUK_DBL_IDX_ULL0]) << 16) >> 16)
1056#define DUK__TVAL_GET_FASTINT_U32(tv) ((tv)->ui[DUK_DBL_IDX_UI1])
1057#define DUK__TVAL_GET_FASTINT_I32(tv) ((duk_int32_t) (tv)->ui[DUK_DBL_IDX_UI1])
1060#define DUK_TVAL_SET_UNDEFINED(tv) \
1062 (tv)->us[DUK_DBL_IDX_US0] = (duk_uint16_t) DUK_TAG_UNDEFINED; \
1064#define DUK_TVAL_SET_UNUSED(tv) \
1066 (tv)->us[DUK_DBL_IDX_US0] = (duk_uint16_t) DUK_TAG_UNUSED; \
1068#define DUK_TVAL_SET_NULL(tv) \
1070 (tv)->us[DUK_DBL_IDX_US0] = (duk_uint16_t) DUK_TAG_NULL; \
1073#define DUK_TVAL_SET_BOOLEAN(tv, val) \
1074 DUK_DBLUNION_SET_HIGH32((tv), (((duk_uint32_t) DUK_TAG_BOOLEAN) << 16) | ((duk_uint32_t) (val)))
1076#define DUK_TVAL_SET_NAN(tv) DUK_DBLUNION_SET_NAN_FULL((tv))
1079#if defined(DUK_USE_FASTINT)
1080#define DUK_TVAL_SET_DOUBLE(tv, d) \
1082 duk_double_t duk__dblval; \
1083 duk__dblval = (d); \
1084 DUK_ASSERT_DOUBLE_IS_NORMALIZED(duk__dblval); \
1085 DUK_DBLUNION_SET_DOUBLE((tv), duk__dblval); \
1087#define DUK_TVAL_SET_I48(tv, i) DUK__TVAL_SET_I48((tv), (i))
1088#define DUK_TVAL_SET_I32(tv, i) DUK__TVAL_SET_I32((tv), (i))
1089#define DUK_TVAL_SET_U32(tv, i) DUK__TVAL_SET_U32((tv), (i))
1090#define DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv, d) duk_tval_set_number_chkfast_fast((tv), (d))
1091#define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv, d) duk_tval_set_number_chkfast_slow((tv), (d))
1092#define DUK_TVAL_SET_NUMBER(tv, d) DUK_TVAL_SET_DOUBLE((tv), (d))
1093#define DUK_TVAL_CHKFAST_INPLACE_FAST(tv) \
1095 duk_tval *duk__tv; \
1096 duk_double_t duk__d; \
1098 if (DUK_TVAL_IS_DOUBLE(duk__tv)) { \
1099 duk__d = DUK_TVAL_GET_DOUBLE(duk__tv); \
1100 DUK_TVAL_SET_NUMBER_CHKFAST_FAST(duk__tv, duk__d); \
1103#define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv) \
1105 duk_tval *duk__tv; \
1106 duk_double_t duk__d; \
1108 if (DUK_TVAL_IS_DOUBLE(duk__tv)) { \
1109 duk__d = DUK_TVAL_GET_DOUBLE(duk__tv); \
1110 DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(duk__tv, duk__d); \
1114#define DUK_TVAL_SET_DOUBLE(tv, d) \
1116 duk_double_t duk__dblval; \
1117 duk__dblval = (d); \
1118 DUK_ASSERT_DOUBLE_IS_NORMALIZED(duk__dblval); \
1119 DUK_DBLUNION_SET_DOUBLE((tv), duk__dblval); \
1121#define DUK_TVAL_SET_I48(tv, i) DUK_TVAL_SET_DOUBLE((tv), (duk_double_t) (i))
1122#define DUK_TVAL_SET_I32(tv, i) DUK_TVAL_SET_DOUBLE((tv), (duk_double_t) (i))
1123#define DUK_TVAL_SET_U32(tv, i) DUK_TVAL_SET_DOUBLE((tv), (duk_double_t) (i))
1124#define DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv, d) DUK_TVAL_SET_DOUBLE((tv), (d))
1125#define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv, d) DUK_TVAL_SET_DOUBLE((tv), (d))
1126#define DUK_TVAL_SET_NUMBER(tv, d) DUK_TVAL_SET_DOUBLE((tv), (d))
1127#define DUK_TVAL_CHKFAST_INPLACE_FAST(tv) \
1130#define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv) \
1135#define DUK_TVAL_SET_FASTINT(tv, i) DUK_TVAL_SET_I48((tv), (i))
1137#define DUK_TVAL_SET_LIGHTFUNC(tv, fp, flags) DUK__TVAL_SET_LIGHTFUNC((tv), (fp), (flags))
1138#define DUK_TVAL_SET_STRING(tv, h) DUK__TVAL_SET_TAGGEDPOINTER((tv), (h), DUK_TAG_STRING)
1139#define DUK_TVAL_SET_OBJECT(tv, h) DUK__TVAL_SET_TAGGEDPOINTER((tv), (h), DUK_TAG_OBJECT)
1140#define DUK_TVAL_SET_BUFFER(tv, h) DUK__TVAL_SET_TAGGEDPOINTER((tv), (h), DUK_TAG_BUFFER)
1141#define DUK_TVAL_SET_POINTER(tv, p) DUK__TVAL_SET_TAGGEDPOINTER((tv), (p), DUK_TAG_POINTER)
1143#define DUK_TVAL_SET_TVAL(tv, x) \
1149#define DUK_TVAL_GET_BOOLEAN(tv) ((duk_small_uint_t) (tv)->us[DUK_DBL_IDX_US1])
1150#if defined(DUK_USE_FASTINT)
1151#define DUK_TVAL_GET_DOUBLE(tv) ((tv)->d)
1152#define DUK_TVAL_GET_FASTINT(tv) DUK__TVAL_GET_FASTINT((tv))
1153#define DUK_TVAL_GET_FASTINT_U32(tv) DUK__TVAL_GET_FASTINT_U32((tv))
1154#define DUK_TVAL_GET_FASTINT_I32(tv) DUK__TVAL_GET_FASTINT_I32((tv))
1155#define DUK_TVAL_GET_NUMBER(tv) duk_tval_get_number_packed((tv))
1157#define DUK_TVAL_GET_NUMBER(tv) ((tv)->d)
1158#define DUK_TVAL_GET_DOUBLE(tv) ((tv)->d)
1160#define DUK_TVAL_GET_LIGHTFUNC(tv, out_fp, out_flags) \
1162 (out_flags) = (tv)->ui[DUK_DBL_IDX_UI0] & 0xffffUL; \
1163 (out_fp) = (duk_c_function) (tv)->ui[DUK_DBL_IDX_UI1]; \
1165#define DUK_TVAL_GET_LIGHTFUNC_FUNCPTR(tv) ((duk_c_function) ((tv)->ui[DUK_DBL_IDX_UI1]))
1166#define DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv) (((duk_small_uint_t) (tv)->ui[DUK_DBL_IDX_UI0]) & 0xffffUL)
1167#define DUK_TVAL_GET_STRING(tv) ((duk_hstring *) (tv)->vp[DUK_DBL_IDX_VP1])
1168#define DUK_TVAL_GET_OBJECT(tv) ((duk_hobject *) (tv)->vp[DUK_DBL_IDX_VP1])
1169#define DUK_TVAL_GET_BUFFER(tv) ((duk_hbuffer *) (tv)->vp[DUK_DBL_IDX_VP1])
1170#define DUK_TVAL_GET_POINTER(tv) ((void *) (tv)->vp[DUK_DBL_IDX_VP1])
1171#define DUK_TVAL_GET_HEAPHDR(tv) ((duk_heaphdr *) (tv)->vp[DUK_DBL_IDX_VP1])
1174#define DUK_TVAL_GET_TAG(tv) ((duk_small_uint_t) (tv)->us[DUK_DBL_IDX_US0])
1176#define DUK_TVAL_IS_UNDEFINED(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_UNDEFINED)
1177#define DUK_TVAL_IS_UNUSED(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_UNUSED)
1178#define DUK_TVAL_IS_NULL(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_NULL)
1179#define DUK_TVAL_IS_BOOLEAN(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_BOOLEAN)
1180#define DUK_TVAL_IS_BOOLEAN_TRUE(tv) ((tv)->ui[DUK_DBL_IDX_UI0] == DUK_XTAG_BOOLEAN_TRUE)
1181#define DUK_TVAL_IS_BOOLEAN_FALSE(tv) ((tv)->ui[DUK_DBL_IDX_UI0] == DUK_XTAG_BOOLEAN_FALSE)
1182#define DUK_TVAL_IS_LIGHTFUNC(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_LIGHTFUNC)
1183#define DUK_TVAL_IS_STRING(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_STRING)
1184#define DUK_TVAL_IS_OBJECT(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_OBJECT)
1185#define DUK_TVAL_IS_BUFFER(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_BUFFER)
1186#define DUK_TVAL_IS_POINTER(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_POINTER)
1187#if defined(DUK_USE_FASTINT)
1189#define DUK_TVAL_IS_DOUBLE(tv) (DUK_TVAL_GET_TAG((tv)) <= 0xfff0UL)
1190#define DUK_TVAL_IS_FASTINT(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_FASTINT)
1191#define DUK_TVAL_IS_NUMBER(tv) (DUK_TVAL_GET_TAG((tv)) <= 0xfff1UL)
1193#define DUK_TVAL_IS_NUMBER(tv) (DUK_TVAL_GET_TAG((tv)) <= 0xfff0UL)
1194#define DUK_TVAL_IS_DOUBLE(tv) DUK_TVAL_IS_NUMBER((tv))
1198#define DUK_TVAL_IS_HEAP_ALLOCATED(tv) (DUK_TVAL_GET_TAG((tv)) >= DUK_TAG_STRING)
1200#if defined(DUK_USE_FASTINT)
1227#if defined(DUK_USE_FASTINT)
1253#define DUK_TVAL_UNUSED_INITIALIZER() \
1254 { DUK_TAG_UNUSED, 0, 0.0 }
1256#define DUK_TAG_MIN 0
1257#define DUK_TAG_NUMBER 0
1258#if defined(DUK_USE_FASTINT)
1259#define DUK_TAG_FASTINT 1
1261#define DUK_TAG_UNDEFINED 2
1262#define DUK_TAG_NULL 3
1263#define DUK_TAG_BOOLEAN 4
1264#define DUK_TAG_POINTER 5
1265#define DUK_TAG_LIGHTFUNC 6
1266#define DUK_TAG_UNUSED 7
1267#define DUK_TAG_STRING 8
1268#define DUK_TAG_OBJECT 9
1269#define DUK_TAG_BUFFER 10
1270#define DUK_TAG_MAX 10
1272#define DUK_TVAL_IS_VALID_TAG(tv) (DUK_TVAL_GET_TAG((tv)) - DUK_TAG_MIN <= DUK_TAG_MAX - DUK_TAG_MIN)
1281#define DUK_TVAL_SET_UNDEFINED(tv) \
1283 duk_tval *duk__tv; \
1285 duk__tv->t = DUK_TAG_UNDEFINED; \
1288#define DUK_TVAL_SET_UNUSED(tv) \
1290 duk_tval *duk__tv; \
1292 duk__tv->t = DUK_TAG_UNUSED; \
1295#define DUK_TVAL_SET_NULL(tv) \
1297 duk_tval *duk__tv; \
1299 duk__tv->t = DUK_TAG_NULL; \
1302#define DUK_TVAL_SET_BOOLEAN(tv, val) \
1304 duk_tval *duk__tv; \
1306 duk__tv->t = DUK_TAG_BOOLEAN; \
1307 duk__tv->v.i = (duk_small_int_t) (val); \
1310#if defined(DUK_USE_FASTINT)
1311#define DUK_TVAL_SET_DOUBLE(tv, val) \
1313 duk_tval *duk__tv; \
1314 duk_double_t duk__dblval; \
1315 duk__dblval = (val); \
1316 DUK_ASSERT_DOUBLE_IS_NORMALIZED(duk__dblval); \
1318 duk__tv->t = DUK_TAG_NUMBER; \
1319 duk__tv->v.d = duk__dblval; \
1321#define DUK_TVAL_SET_I48(tv, val) \
1323 duk_tval *duk__tv; \
1325 duk__tv->t = DUK_TAG_FASTINT; \
1326 duk__tv->v.fi = (val); \
1328#define DUK_TVAL_SET_U32(tv, val) \
1330 duk_tval *duk__tv; \
1332 duk__tv->t = DUK_TAG_FASTINT; \
1333 duk__tv->v.fi = (duk_int64_t) (val); \
1335#define DUK_TVAL_SET_I32(tv, val) \
1337 duk_tval *duk__tv; \
1339 duk__tv->t = DUK_TAG_FASTINT; \
1340 duk__tv->v.fi = (duk_int64_t) (val); \
1342#define DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv, d) duk_tval_set_number_chkfast_fast((tv), (d))
1343#define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv, d) duk_tval_set_number_chkfast_slow((tv), (d))
1344#define DUK_TVAL_SET_NUMBER(tv, val) DUK_TVAL_SET_DOUBLE((tv), (val))
1345#define DUK_TVAL_CHKFAST_INPLACE_FAST(tv) \
1347 duk_tval *duk__tv; \
1348 duk_double_t duk__d; \
1350 if (DUK_TVAL_IS_DOUBLE(duk__tv)) { \
1351 duk__d = DUK_TVAL_GET_DOUBLE(duk__tv); \
1352 DUK_TVAL_SET_NUMBER_CHKFAST_FAST(duk__tv, duk__d); \
1355#define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv) \
1357 duk_tval *duk__tv; \
1358 duk_double_t duk__d; \
1360 if (DUK_TVAL_IS_DOUBLE(duk__tv)) { \
1361 duk__d = DUK_TVAL_GET_DOUBLE(duk__tv); \
1362 DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(duk__tv, duk__d); \
1366#define DUK_TVAL_SET_DOUBLE(tv, d) DUK_TVAL_SET_NUMBER((tv), (d))
1367#define DUK_TVAL_SET_I48(tv, val) DUK_TVAL_SET_NUMBER((tv), (duk_double_t) (val))
1368#define DUK_TVAL_SET_U32(tv, val) DUK_TVAL_SET_NUMBER((tv), (duk_double_t) (val))
1369#define DUK_TVAL_SET_I32(tv, val) DUK_TVAL_SET_NUMBER((tv), (duk_double_t) (val))
1370#define DUK_TVAL_SET_NUMBER(tv, val) \
1372 duk_tval *duk__tv; \
1373 duk_double_t duk__dblval; \
1374 duk__dblval = (val); \
1375 DUK_ASSERT_DOUBLE_IS_NORMALIZED(duk__dblval); \
1377 duk__tv->t = DUK_TAG_NUMBER; \
1378 duk__tv->v.d = duk__dblval; \
1380#define DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv, d) DUK_TVAL_SET_NUMBER((tv), (d))
1381#define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv, d) DUK_TVAL_SET_NUMBER((tv), (d))
1382#define DUK_TVAL_CHKFAST_INPLACE_FAST(tv) \
1385#define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv) \
1390#define DUK_TVAL_SET_FASTINT(tv, i) DUK_TVAL_SET_I48((tv), (i))
1392#define DUK_TVAL_SET_POINTER(tv, hptr) \
1394 duk_tval *duk__tv; \
1396 duk__tv->t = DUK_TAG_POINTER; \
1397 duk__tv->v.voidptr = (hptr); \
1400#define DUK_TVAL_SET_LIGHTFUNC(tv, fp, flags) \
1402 duk_tval *duk__tv; \
1404 duk__tv->t = DUK_TAG_LIGHTFUNC; \
1405 duk__tv->v_extra = (flags); \
1406 duk__tv->v.lightfunc = (duk_c_function) (fp); \
1409#define DUK_TVAL_SET_STRING(tv, hptr) \
1411 duk_tval *duk__tv; \
1413 duk__tv->t = DUK_TAG_STRING; \
1414 duk__tv->v.hstring = (hptr); \
1417#define DUK_TVAL_SET_OBJECT(tv, hptr) \
1419 duk_tval *duk__tv; \
1421 duk__tv->t = DUK_TAG_OBJECT; \
1422 duk__tv->v.hobject = (hptr); \
1425#define DUK_TVAL_SET_BUFFER(tv, hptr) \
1427 duk_tval *duk__tv; \
1429 duk__tv->t = DUK_TAG_BUFFER; \
1430 duk__tv->v.hbuffer = (hptr); \
1433#define DUK_TVAL_SET_NAN(tv) \
1436 duk_tval *duk__tv; \
1438 duk__tv->t = DUK_TAG_NUMBER; \
1439 duk__tv->v.d = DUK_DOUBLE_NAN; \
1442#define DUK_TVAL_SET_TVAL(tv, x) \
1448#define DUK_TVAL_GET_BOOLEAN(tv) ((duk_small_uint_t) (tv)->v.i)
1449#if defined(DUK_USE_FASTINT)
1450#define DUK_TVAL_GET_DOUBLE(tv) ((tv)->v.d)
1451#define DUK_TVAL_GET_FASTINT(tv) ((tv)->v.fi)
1452#define DUK_TVAL_GET_FASTINT_U32(tv) ((duk_uint32_t) ((tv)->v.fi))
1453#define DUK_TVAL_GET_FASTINT_I32(tv) ((duk_int32_t) ((tv)->v.fi))
1455#define DUK_TVAL_GET_NUMBER(tv) (DUK_TVAL_IS_FASTINT((tv)) ? (duk_double_t) DUK_TVAL_GET_FASTINT((tv)) : DUK_TVAL_GET_DOUBLE((tv)))
1456#define DUK_TVAL_GET_NUMBER(tv) duk_tval_get_number_unpacked((tv))
1459#define DUK_TVAL_GET_NUMBER(tv) (DUK_TVAL_IS_FASTINT((tv)) ? duk_tval_get_number_unpacked_fastint((tv)) : DUK_TVAL_GET_DOUBLE((tv)))
1462#define DUK_TVAL_GET_NUMBER(tv) ((tv)->v.d)
1463#define DUK_TVAL_GET_DOUBLE(tv) ((tv)->v.d)
1465#define DUK_TVAL_GET_POINTER(tv) ((tv)->v.voidptr)
1466#define DUK_TVAL_GET_LIGHTFUNC(tv, out_fp, out_flags) \
1468 (out_flags) = (duk_uint32_t) (tv)->v_extra; \
1469 (out_fp) = (tv)->v.lightfunc; \
1471#define DUK_TVAL_GET_LIGHTFUNC_FUNCPTR(tv) ((tv)->v.lightfunc)
1472#define DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv) ((duk_small_uint_t) ((tv)->v_extra))
1473#define DUK_TVAL_GET_STRING(tv) ((tv)->v.hstring)
1474#define DUK_TVAL_GET_OBJECT(tv) ((tv)->v.hobject)
1475#define DUK_TVAL_GET_BUFFER(tv) ((tv)->v.hbuffer)
1476#define DUK_TVAL_GET_HEAPHDR(tv) ((tv)->v.heaphdr)
1479#define DUK_TVAL_GET_TAG(tv) ((tv)->t)
1480#define DUK_TVAL_IS_UNDEFINED(tv) ((tv)->t == DUK_TAG_UNDEFINED)
1481#define DUK_TVAL_IS_UNUSED(tv) ((tv)->t == DUK_TAG_UNUSED)
1482#define DUK_TVAL_IS_NULL(tv) ((tv)->t == DUK_TAG_NULL)
1483#define DUK_TVAL_IS_BOOLEAN(tv) ((tv)->t == DUK_TAG_BOOLEAN)
1484#define DUK_TVAL_IS_BOOLEAN_TRUE(tv) (((tv)->t == DUK_TAG_BOOLEAN) && ((tv)->v.i != 0))
1485#define DUK_TVAL_IS_BOOLEAN_FALSE(tv) (((tv)->t == DUK_TAG_BOOLEAN) && ((tv)->v.i == 0))
1486#if defined(DUK_USE_FASTINT)
1487#define DUK_TVAL_IS_DOUBLE(tv) ((tv)->t == DUK_TAG_NUMBER)
1488#define DUK_TVAL_IS_FASTINT(tv) ((tv)->t == DUK_TAG_FASTINT)
1489#define DUK_TVAL_IS_NUMBER(tv) ((tv)->t == DUK_TAG_NUMBER || (tv)->t == DUK_TAG_FASTINT)
1491#define DUK_TVAL_IS_NUMBER(tv) ((tv)->t == DUK_TAG_NUMBER)
1492#define DUK_TVAL_IS_DOUBLE(tv) DUK_TVAL_IS_NUMBER((tv))
1494#define DUK_TVAL_IS_POINTER(tv) ((tv)->t == DUK_TAG_POINTER)
1495#define DUK_TVAL_IS_LIGHTFUNC(tv) ((tv)->t == DUK_TAG_LIGHTFUNC)
1496#define DUK_TVAL_IS_STRING(tv) ((tv)->t == DUK_TAG_STRING)
1497#define DUK_TVAL_IS_OBJECT(tv) ((tv)->t == DUK_TAG_OBJECT)
1498#define DUK_TVAL_IS_BUFFER(tv) ((tv)->t == DUK_TAG_BUFFER)
1506#define DUK_TVAL_IS_HEAP_ALLOCATED(tv) ((tv)->t >= DUK_TAG_STRING)
1508#define DUK_TVAL_IS_HEAP_ALLOCATED(tv) ((tv)->t & 0x08)
1510#if defined(DUK_USE_FASTINT)
1523#define DUK_TVAL_SET_BOOLEAN_TRUE(tv) DUK_TVAL_SET_BOOLEAN((tv), 1)
1524#define DUK_TVAL_SET_BOOLEAN_FALSE(tv) DUK_TVAL_SET_BOOLEAN((tv), 0)
1526#define DUK_TVAL_STRING_IS_SYMBOL(tv) DUK_HSTRING_HAS_SYMBOL(DUK_TVAL_GET_STRING((tv)))
1532#define DUK_LFUNC_FLAGS_GET_MAGIC(lf_flags) ((duk_int32_t) (duk_int8_t) (((duk_uint16_t) (lf_flags)) >> 8))
1533#define DUK_LFUNC_FLAGS_GET_LENGTH(lf_flags) (((lf_flags) >> 4) & 0x0fU)
1534#define DUK_LFUNC_FLAGS_GET_NARGS(lf_flags) ((lf_flags) &0x0fU)
1535#define DUK_LFUNC_FLAGS_PACK(magic, length, nargs) ((((duk_small_uint_t) (magic)) & 0xffU) << 8) | ((length) << 4) | (nargs)
1537#define DUK_LFUNC_NARGS_VARARGS 0x0f
1538#define DUK_LFUNC_NARGS_MIN 0x00
1539#define DUK_LFUNC_NARGS_MAX 0x0e
1540#define DUK_LFUNC_LENGTH_MIN 0x00
1541#define DUK_LFUNC_LENGTH_MAX 0x0f
1542#define DUK_LFUNC_MAGIC_MIN (-0x80)
1543#define DUK_LFUNC_MAGIC_MAX 0x7f
1546#if defined(DUK_USE_FASTINT)
1547#define DUK_FASTINT_MIN (DUK_I64_CONSTANT(-0x800000000000))
1548#define DUK_FASTINT_MAX (DUK_I64_CONSTANT(0x7fffffffffff))
1549#define DUK_FASTINT_BITS 48
1555#if defined(DUK_USE_ASSERTIONS)
1557#define DUK_TVAL_ASSERT_VALID(tv) \
1559 duk_tval_assert_valid((tv)); \
1562#define DUK_TVAL_ASSERT_VALID(tv) \
1573#if !defined(DUK_BUILTINS_H_INCLUDED)
1574#define DUK_BUILTINS_H_INCLUDED
1576#if defined(DUK_USE_ROM_STRINGS)
1577#error ROM support not enabled, rerun configure.py with --rom-support
1579#define DUK_STRIDX_UC_UNDEFINED 0
1580#define DUK_HEAP_STRING_UC_UNDEFINED(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_UNDEFINED)
1581#define DUK_HTHREAD_STRING_UC_UNDEFINED(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_UNDEFINED)
1582#define DUK_STRIDX_UC_NULL 1
1583#define DUK_HEAP_STRING_UC_NULL(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_NULL)
1584#define DUK_HTHREAD_STRING_UC_NULL(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_NULL)
1585#define DUK_STRIDX_UC_SYMBOL 2
1586#define DUK_HEAP_STRING_UC_SYMBOL(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_SYMBOL)
1587#define DUK_HTHREAD_STRING_UC_SYMBOL(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_SYMBOL)
1588#define DUK_STRIDX_UC_ARGUMENTS 3
1589#define DUK_HEAP_STRING_UC_ARGUMENTS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_ARGUMENTS)
1590#define DUK_HTHREAD_STRING_UC_ARGUMENTS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_ARGUMENTS)
1591#define DUK_STRIDX_UC_OBJECT 4
1592#define DUK_HEAP_STRING_UC_OBJECT(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_OBJECT)
1593#define DUK_HTHREAD_STRING_UC_OBJECT(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_OBJECT)
1594#define DUK_STRIDX_UC_FUNCTION 5
1595#define DUK_HEAP_STRING_UC_FUNCTION(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_FUNCTION)
1596#define DUK_HTHREAD_STRING_UC_FUNCTION(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_FUNCTION)
1597#define DUK_STRIDX_UC_ARRAY 6
1598#define DUK_HEAP_STRING_UC_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_ARRAY)
1599#define DUK_HTHREAD_STRING_UC_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_ARRAY)
1600#define DUK_STRIDX_UC_STRING 7
1601#define DUK_HEAP_STRING_UC_STRING(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_STRING)
1602#define DUK_HTHREAD_STRING_UC_STRING(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_STRING)
1603#define DUK_STRIDX_UC_BOOLEAN 8
1604#define DUK_HEAP_STRING_UC_BOOLEAN(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_BOOLEAN)
1605#define DUK_HTHREAD_STRING_UC_BOOLEAN(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_BOOLEAN)
1606#define DUK_STRIDX_UC_NUMBER 9
1607#define DUK_HEAP_STRING_UC_NUMBER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_NUMBER)
1608#define DUK_HTHREAD_STRING_UC_NUMBER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_NUMBER)
1609#define DUK_STRIDX_UC_DATE 10
1610#define DUK_HEAP_STRING_UC_DATE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_DATE)
1611#define DUK_HTHREAD_STRING_UC_DATE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_DATE)
1612#define DUK_STRIDX_REG_EXP 11
1613#define DUK_HEAP_STRING_REG_EXP(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_REG_EXP)
1614#define DUK_HTHREAD_STRING_REG_EXP(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_REG_EXP)
1615#define DUK_STRIDX_UC_ERROR 12
1616#define DUK_HEAP_STRING_UC_ERROR(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_ERROR)
1617#define DUK_HTHREAD_STRING_UC_ERROR(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_ERROR)
1618#define DUK_STRIDX_MATH 13
1619#define DUK_HEAP_STRING_MATH(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_MATH)
1620#define DUK_HTHREAD_STRING_MATH(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_MATH)
1621#define DUK_STRIDX_JSON 14
1622#define DUK_HEAP_STRING_JSON(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JSON)
1623#define DUK_HTHREAD_STRING_JSON(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JSON)
1624#define DUK_STRIDX_EMPTY_STRING 15
1625#define DUK_HEAP_STRING_EMPTY_STRING(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_EMPTY_STRING)
1626#define DUK_HTHREAD_STRING_EMPTY_STRING(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_EMPTY_STRING)
1627#define DUK_STRIDX_ARRAY_BUFFER 16
1628#define DUK_HEAP_STRING_ARRAY_BUFFER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_ARRAY_BUFFER)
1629#define DUK_HTHREAD_STRING_ARRAY_BUFFER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_ARRAY_BUFFER)
1630#define DUK_STRIDX_DATA_VIEW 17
1631#define DUK_HEAP_STRING_DATA_VIEW(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_DATA_VIEW)
1632#define DUK_HTHREAD_STRING_DATA_VIEW(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_DATA_VIEW)
1633#define DUK_STRIDX_INT8_ARRAY 18
1634#define DUK_HEAP_STRING_INT8_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT8_ARRAY)
1635#define DUK_HTHREAD_STRING_INT8_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT8_ARRAY)
1636#define DUK_STRIDX_UINT8_ARRAY 19
1637#define DUK_HEAP_STRING_UINT8_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UINT8_ARRAY)
1638#define DUK_HTHREAD_STRING_UINT8_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UINT8_ARRAY)
1639#define DUK_STRIDX_UINT8_CLAMPED_ARRAY 20
1640#define DUK_HEAP_STRING_UINT8_CLAMPED_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UINT8_CLAMPED_ARRAY)
1641#define DUK_HTHREAD_STRING_UINT8_CLAMPED_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UINT8_CLAMPED_ARRAY)
1642#define DUK_STRIDX_INT16_ARRAY 21
1643#define DUK_HEAP_STRING_INT16_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT16_ARRAY)
1644#define DUK_HTHREAD_STRING_INT16_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT16_ARRAY)
1645#define DUK_STRIDX_UINT16_ARRAY 22
1646#define DUK_HEAP_STRING_UINT16_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UINT16_ARRAY)
1647#define DUK_HTHREAD_STRING_UINT16_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UINT16_ARRAY)
1648#define DUK_STRIDX_INT32_ARRAY 23
1649#define DUK_HEAP_STRING_INT32_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT32_ARRAY)
1650#define DUK_HTHREAD_STRING_INT32_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT32_ARRAY)
1651#define DUK_STRIDX_UINT32_ARRAY 24
1652#define DUK_HEAP_STRING_UINT32_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UINT32_ARRAY)
1653#define DUK_HTHREAD_STRING_UINT32_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UINT32_ARRAY)
1654#define DUK_STRIDX_FLOAT32_ARRAY 25
1655#define DUK_HEAP_STRING_FLOAT32_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_FLOAT32_ARRAY)
1656#define DUK_HTHREAD_STRING_FLOAT32_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_FLOAT32_ARRAY)
1657#define DUK_STRIDX_FLOAT64_ARRAY 26
1658#define DUK_HEAP_STRING_FLOAT64_ARRAY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_FLOAT64_ARRAY)
1659#define DUK_HTHREAD_STRING_FLOAT64_ARRAY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_FLOAT64_ARRAY)
1660#define DUK_STRIDX_GLOBAL 27
1661#define DUK_HEAP_STRING_GLOBAL(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_GLOBAL)
1662#define DUK_HTHREAD_STRING_GLOBAL(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_GLOBAL)
1663#define DUK_STRIDX_OBJ_ENV 28
1664#define DUK_HEAP_STRING_OBJ_ENV(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_OBJ_ENV)
1665#define DUK_HTHREAD_STRING_OBJ_ENV(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_OBJ_ENV)
1666#define DUK_STRIDX_DEC_ENV 29
1667#define DUK_HEAP_STRING_DEC_ENV(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_DEC_ENV)
1668#define DUK_HTHREAD_STRING_DEC_ENV(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_DEC_ENV)
1669#define DUK_STRIDX_UC_BUFFER 30
1670#define DUK_HEAP_STRING_UC_BUFFER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_BUFFER)
1671#define DUK_HTHREAD_STRING_UC_BUFFER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_BUFFER)
1672#define DUK_STRIDX_UC_POINTER 31
1673#define DUK_HEAP_STRING_UC_POINTER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_POINTER)
1674#define DUK_HTHREAD_STRING_UC_POINTER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_POINTER)
1675#define DUK_STRIDX_UC_THREAD 32
1676#define DUK_HEAP_STRING_UC_THREAD(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_UC_THREAD)
1677#define DUK_HTHREAD_STRING_UC_THREAD(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_UC_THREAD)
1678#define DUK_STRIDX_EVAL 33
1679#define DUK_HEAP_STRING_EVAL(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_EVAL)
1680#define DUK_HTHREAD_STRING_EVAL(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_EVAL)
1681#define DUK_STRIDX_VALUE 34
1682#define DUK_HEAP_STRING_VALUE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_VALUE)
1683#define DUK_HTHREAD_STRING_VALUE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_VALUE)
1684#define DUK_STRIDX_WRITABLE 35
1685#define DUK_HEAP_STRING_WRITABLE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_WRITABLE)
1686#define DUK_HTHREAD_STRING_WRITABLE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_WRITABLE)
1687#define DUK_STRIDX_CONFIGURABLE 36
1688#define DUK_HEAP_STRING_CONFIGURABLE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CONFIGURABLE)
1689#define DUK_HTHREAD_STRING_CONFIGURABLE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CONFIGURABLE)
1690#define DUK_STRIDX_ENUMERABLE 37
1691#define DUK_HEAP_STRING_ENUMERABLE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_ENUMERABLE)
1692#define DUK_HTHREAD_STRING_ENUMERABLE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_ENUMERABLE)
1693#define DUK_STRIDX_JOIN 38
1694#define DUK_HEAP_STRING_JOIN(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JOIN)
1695#define DUK_HTHREAD_STRING_JOIN(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JOIN)
1696#define DUK_STRIDX_TO_LOCALE_STRING 39
1697#define DUK_HEAP_STRING_TO_LOCALE_STRING(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TO_LOCALE_STRING)
1698#define DUK_HTHREAD_STRING_TO_LOCALE_STRING(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TO_LOCALE_STRING)
1699#define DUK_STRIDX_VALUE_OF 40
1700#define DUK_HEAP_STRING_VALUE_OF(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_VALUE_OF)
1701#define DUK_HTHREAD_STRING_VALUE_OF(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_VALUE_OF)
1702#define DUK_STRIDX_TO_UTC_STRING 41
1703#define DUK_HEAP_STRING_TO_UTC_STRING(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TO_UTC_STRING)
1704#define DUK_HTHREAD_STRING_TO_UTC_STRING(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TO_UTC_STRING)
1705#define DUK_STRIDX_TO_ISO_STRING 42
1706#define DUK_HEAP_STRING_TO_ISO_STRING(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TO_ISO_STRING)
1707#define DUK_HTHREAD_STRING_TO_ISO_STRING(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TO_ISO_STRING)
1708#define DUK_STRIDX_TO_GMT_STRING 43
1709#define DUK_HEAP_STRING_TO_GMT_STRING(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TO_GMT_STRING)
1710#define DUK_HTHREAD_STRING_TO_GMT_STRING(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TO_GMT_STRING)
1711#define DUK_STRIDX_SOURCE 44
1712#define DUK_HEAP_STRING_SOURCE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_SOURCE)
1713#define DUK_HTHREAD_STRING_SOURCE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_SOURCE)
1714#define DUK_STRIDX_IGNORE_CASE 45
1715#define DUK_HEAP_STRING_IGNORE_CASE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_IGNORE_CASE)
1716#define DUK_HTHREAD_STRING_IGNORE_CASE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_IGNORE_CASE)
1717#define DUK_STRIDX_MULTILINE 46
1718#define DUK_HEAP_STRING_MULTILINE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_MULTILINE)
1719#define DUK_HTHREAD_STRING_MULTILINE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_MULTILINE)
1720#define DUK_STRIDX_LAST_INDEX 47
1721#define DUK_HEAP_STRING_LAST_INDEX(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LAST_INDEX)
1722#define DUK_HTHREAD_STRING_LAST_INDEX(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LAST_INDEX)
1723#define DUK_STRIDX_FLAGS 48
1724#define DUK_HEAP_STRING_FLAGS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_FLAGS)
1725#define DUK_HTHREAD_STRING_FLAGS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_FLAGS)
1726#define DUK_STRIDX_INDEX 49
1727#define DUK_HEAP_STRING_INDEX(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INDEX)
1728#define DUK_HTHREAD_STRING_INDEX(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INDEX)
1729#define DUK_STRIDX_PROTOTYPE 50
1730#define DUK_HEAP_STRING_PROTOTYPE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_PROTOTYPE)
1731#define DUK_HTHREAD_STRING_PROTOTYPE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_PROTOTYPE)
1732#define DUK_STRIDX_CONSTRUCTOR 51
1733#define DUK_HEAP_STRING_CONSTRUCTOR(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CONSTRUCTOR)
1734#define DUK_HTHREAD_STRING_CONSTRUCTOR(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CONSTRUCTOR)
1735#define DUK_STRIDX_MESSAGE 52
1736#define DUK_HEAP_STRING_MESSAGE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_MESSAGE)
1737#define DUK_HTHREAD_STRING_MESSAGE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_MESSAGE)
1738#define DUK_STRIDX_LC_BOOLEAN 53
1739#define DUK_HEAP_STRING_LC_BOOLEAN(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_BOOLEAN)
1740#define DUK_HTHREAD_STRING_LC_BOOLEAN(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_BOOLEAN)
1741#define DUK_STRIDX_LC_NUMBER 54
1742#define DUK_HEAP_STRING_LC_NUMBER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_NUMBER)
1743#define DUK_HTHREAD_STRING_LC_NUMBER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_NUMBER)
1744#define DUK_STRIDX_LC_STRING 55
1745#define DUK_HEAP_STRING_LC_STRING(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_STRING)
1746#define DUK_HTHREAD_STRING_LC_STRING(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_STRING)
1747#define DUK_STRIDX_LC_SYMBOL 56
1748#define DUK_HEAP_STRING_LC_SYMBOL(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_SYMBOL)
1749#define DUK_HTHREAD_STRING_LC_SYMBOL(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_SYMBOL)
1750#define DUK_STRIDX_LC_OBJECT 57
1751#define DUK_HEAP_STRING_LC_OBJECT(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_OBJECT)
1752#define DUK_HTHREAD_STRING_LC_OBJECT(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_OBJECT)
1753#define DUK_STRIDX_LC_UNDEFINED 58
1754#define DUK_HEAP_STRING_LC_UNDEFINED(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_UNDEFINED)
1755#define DUK_HTHREAD_STRING_LC_UNDEFINED(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_UNDEFINED)
1756#define DUK_STRIDX_NAN 59
1757#define DUK_HEAP_STRING_NAN(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_NAN)
1758#define DUK_HTHREAD_STRING_NAN(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_NAN)
1759#define DUK_STRIDX_INFINITY 60
1760#define DUK_HEAP_STRING_INFINITY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INFINITY)
1761#define DUK_HTHREAD_STRING_INFINITY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INFINITY)
1762#define DUK_STRIDX_MINUS_INFINITY 61
1763#define DUK_HEAP_STRING_MINUS_INFINITY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_MINUS_INFINITY)
1764#define DUK_HTHREAD_STRING_MINUS_INFINITY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_MINUS_INFINITY)
1765#define DUK_STRIDX_MINUS_ZERO 62
1766#define DUK_HEAP_STRING_MINUS_ZERO(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_MINUS_ZERO)
1767#define DUK_HTHREAD_STRING_MINUS_ZERO(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_MINUS_ZERO)
1768#define DUK_STRIDX_COMMA 63
1769#define DUK_HEAP_STRING_COMMA(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_COMMA)
1770#define DUK_HTHREAD_STRING_COMMA(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_COMMA)
1771#define DUK_STRIDX_NEWLINE_4SPACE 64
1772#define DUK_HEAP_STRING_NEWLINE_4SPACE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_NEWLINE_4SPACE)
1773#define DUK_HTHREAD_STRING_NEWLINE_4SPACE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_NEWLINE_4SPACE)
1774#define DUK_STRIDX_BRACKETED_ELLIPSIS 65
1775#define DUK_HEAP_STRING_BRACKETED_ELLIPSIS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_BRACKETED_ELLIPSIS)
1776#define DUK_HTHREAD_STRING_BRACKETED_ELLIPSIS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_BRACKETED_ELLIPSIS)
1777#define DUK_STRIDX_INVALID_DATE 66
1778#define DUK_HEAP_STRING_INVALID_DATE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INVALID_DATE)
1779#define DUK_HTHREAD_STRING_INVALID_DATE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INVALID_DATE)
1780#define DUK_STRIDX_LC_ARGUMENTS 67
1781#define DUK_HEAP_STRING_LC_ARGUMENTS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_ARGUMENTS)
1782#define DUK_HTHREAD_STRING_LC_ARGUMENTS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_ARGUMENTS)
1783#define DUK_STRIDX_CALLEE 68
1784#define DUK_HEAP_STRING_CALLEE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CALLEE)
1785#define DUK_HTHREAD_STRING_CALLEE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CALLEE)
1786#define DUK_STRIDX_CALLER 69
1787#define DUK_HEAP_STRING_CALLER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CALLER)
1788#define DUK_HTHREAD_STRING_CALLER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CALLER)
1789#define DUK_STRIDX_APPLY 70
1790#define DUK_HEAP_STRING_APPLY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_APPLY)
1791#define DUK_HTHREAD_STRING_APPLY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_APPLY)
1792#define DUK_STRIDX_CONSTRUCT 71
1793#define DUK_HEAP_STRING_CONSTRUCT(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CONSTRUCT)
1794#define DUK_HTHREAD_STRING_CONSTRUCT(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CONSTRUCT)
1795#define DUK_STRIDX_DELETE_PROPERTY 72
1796#define DUK_HEAP_STRING_DELETE_PROPERTY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_DELETE_PROPERTY)
1797#define DUK_HTHREAD_STRING_DELETE_PROPERTY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_DELETE_PROPERTY)
1798#define DUK_STRIDX_GET 73
1799#define DUK_HEAP_STRING_GET(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_GET)
1800#define DUK_HTHREAD_STRING_GET(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_GET)
1801#define DUK_STRIDX_HAS 74
1802#define DUK_HEAP_STRING_HAS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_HAS)
1803#define DUK_HTHREAD_STRING_HAS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_HAS)
1804#define DUK_STRIDX_OWN_KEYS 75
1805#define DUK_HEAP_STRING_OWN_KEYS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_OWN_KEYS)
1806#define DUK_HTHREAD_STRING_OWN_KEYS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_OWN_KEYS)
1807#define DUK_STRIDX_WELLKNOWN_SYMBOL_TO_PRIMITIVE 76
1808#define DUK_HEAP_STRING_WELLKNOWN_SYMBOL_TO_PRIMITIVE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_WELLKNOWN_SYMBOL_TO_PRIMITIVE)
1809#define DUK_HTHREAD_STRING_WELLKNOWN_SYMBOL_TO_PRIMITIVE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_WELLKNOWN_SYMBOL_TO_PRIMITIVE)
1810#define DUK_STRIDX_WELLKNOWN_SYMBOL_HAS_INSTANCE 77
1811#define DUK_HEAP_STRING_WELLKNOWN_SYMBOL_HAS_INSTANCE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_WELLKNOWN_SYMBOL_HAS_INSTANCE)
1812#define DUK_HTHREAD_STRING_WELLKNOWN_SYMBOL_HAS_INSTANCE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_WELLKNOWN_SYMBOL_HAS_INSTANCE)
1813#define DUK_STRIDX_WELLKNOWN_SYMBOL_TO_STRING_TAG 78
1814#define DUK_HEAP_STRING_WELLKNOWN_SYMBOL_TO_STRING_TAG(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_WELLKNOWN_SYMBOL_TO_STRING_TAG)
1815#define DUK_HTHREAD_STRING_WELLKNOWN_SYMBOL_TO_STRING_TAG(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_WELLKNOWN_SYMBOL_TO_STRING_TAG)
1816#define DUK_STRIDX_WELLKNOWN_SYMBOL_IS_CONCAT_SPREADABLE 79
1817#define DUK_HEAP_STRING_WELLKNOWN_SYMBOL_IS_CONCAT_SPREADABLE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_WELLKNOWN_SYMBOL_IS_CONCAT_SPREADABLE)
1818#define DUK_HTHREAD_STRING_WELLKNOWN_SYMBOL_IS_CONCAT_SPREADABLE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_WELLKNOWN_SYMBOL_IS_CONCAT_SPREADABLE)
1819#define DUK_STRIDX_SET_PROTOTYPE_OF 80
1820#define DUK_HEAP_STRING_SET_PROTOTYPE_OF(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_SET_PROTOTYPE_OF)
1821#define DUK_HTHREAD_STRING_SET_PROTOTYPE_OF(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_SET_PROTOTYPE_OF)
1822#define DUK_STRIDX___PROTO__ 81
1823#define DUK_HEAP_STRING___PROTO__(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX___PROTO__)
1824#define DUK_HTHREAD_STRING___PROTO__(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX___PROTO__)
1825#define DUK_STRIDX_TO_STRING 82
1826#define DUK_HEAP_STRING_TO_STRING(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TO_STRING)
1827#define DUK_HTHREAD_STRING_TO_STRING(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TO_STRING)
1828#define DUK_STRIDX_TO_JSON 83
1829#define DUK_HEAP_STRING_TO_JSON(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TO_JSON)
1830#define DUK_HTHREAD_STRING_TO_JSON(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TO_JSON)
1831#define DUK_STRIDX_TYPE 84
1832#define DUK_HEAP_STRING_TYPE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TYPE)
1833#define DUK_HTHREAD_STRING_TYPE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TYPE)
1834#define DUK_STRIDX_DATA 85
1835#define DUK_HEAP_STRING_DATA(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_DATA)
1836#define DUK_HTHREAD_STRING_DATA(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_DATA)
1837#define DUK_STRIDX_LC_BUFFER 86
1838#define DUK_HEAP_STRING_LC_BUFFER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_BUFFER)
1839#define DUK_HTHREAD_STRING_LC_BUFFER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_BUFFER)
1840#define DUK_STRIDX_LENGTH 87
1841#define DUK_HEAP_STRING_LENGTH(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LENGTH)
1842#define DUK_HTHREAD_STRING_LENGTH(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LENGTH)
1843#define DUK_STRIDX_SET 88
1844#define DUK_HEAP_STRING_SET(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_SET)
1845#define DUK_HTHREAD_STRING_SET(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_SET)
1846#define DUK_STRIDX_STACK 89
1847#define DUK_HEAP_STRING_STACK(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_STACK)
1848#define DUK_HTHREAD_STRING_STACK(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_STACK)
1849#define DUK_STRIDX_PC 90
1850#define DUK_HEAP_STRING_PC(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_PC)
1851#define DUK_HTHREAD_STRING_PC(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_PC)
1852#define DUK_STRIDX_LINE_NUMBER 91
1853#define DUK_HEAP_STRING_LINE_NUMBER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LINE_NUMBER)
1854#define DUK_HTHREAD_STRING_LINE_NUMBER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LINE_NUMBER)
1855#define DUK_STRIDX_INT_TRACEDATA 92
1856#define DUK_HEAP_STRING_INT_TRACEDATA(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_TRACEDATA)
1857#define DUK_HTHREAD_STRING_INT_TRACEDATA(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_TRACEDATA)
1858#define DUK_STRIDX_NAME 93
1859#define DUK_HEAP_STRING_NAME(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_NAME)
1860#define DUK_HTHREAD_STRING_NAME(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_NAME)
1861#define DUK_STRIDX_FILE_NAME 94
1862#define DUK_HEAP_STRING_FILE_NAME(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_FILE_NAME)
1863#define DUK_HTHREAD_STRING_FILE_NAME(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_FILE_NAME)
1864#define DUK_STRIDX_LC_POINTER 95
1865#define DUK_HEAP_STRING_LC_POINTER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_POINTER)
1866#define DUK_HTHREAD_STRING_LC_POINTER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_POINTER)
1867#define DUK_STRIDX_INT_TARGET 96
1868#define DUK_HEAP_STRING_INT_TARGET(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_TARGET)
1869#define DUK_HTHREAD_STRING_INT_TARGET(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_TARGET)
1870#define DUK_STRIDX_INT_NEXT 97
1871#define DUK_HEAP_STRING_INT_NEXT(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_NEXT)
1872#define DUK_HTHREAD_STRING_INT_NEXT(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_NEXT)
1873#define DUK_STRIDX_INT_BYTECODE 98
1874#define DUK_HEAP_STRING_INT_BYTECODE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_BYTECODE)
1875#define DUK_HTHREAD_STRING_INT_BYTECODE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_BYTECODE)
1876#define DUK_STRIDX_INT_FORMALS 99
1877#define DUK_HEAP_STRING_INT_FORMALS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_FORMALS)
1878#define DUK_HTHREAD_STRING_INT_FORMALS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_FORMALS)
1879#define DUK_STRIDX_INT_VARMAP 100
1880#define DUK_HEAP_STRING_INT_VARMAP(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_VARMAP)
1881#define DUK_HTHREAD_STRING_INT_VARMAP(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_VARMAP)
1882#define DUK_STRIDX_INT_SOURCE 101
1883#define DUK_HEAP_STRING_INT_SOURCE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_SOURCE)
1884#define DUK_HTHREAD_STRING_INT_SOURCE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_SOURCE)
1885#define DUK_STRIDX_INT_PC2LINE 102
1886#define DUK_HEAP_STRING_INT_PC2LINE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_PC2LINE)
1887#define DUK_HTHREAD_STRING_INT_PC2LINE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_PC2LINE)
1888#define DUK_STRIDX_INT_MAP 103
1889#define DUK_HEAP_STRING_INT_MAP(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_MAP)
1890#define DUK_HTHREAD_STRING_INT_MAP(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_MAP)
1891#define DUK_STRIDX_INT_VARENV 104
1892#define DUK_HEAP_STRING_INT_VARENV(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_VARENV)
1893#define DUK_HTHREAD_STRING_INT_VARENV(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_VARENV)
1894#define DUK_STRIDX_INT_FINALIZER 105
1895#define DUK_HEAP_STRING_INT_FINALIZER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_FINALIZER)
1896#define DUK_HTHREAD_STRING_INT_FINALIZER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_FINALIZER)
1897#define DUK_STRIDX_INT_VALUE 106
1898#define DUK_HEAP_STRING_INT_VALUE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INT_VALUE)
1899#define DUK_HTHREAD_STRING_INT_VALUE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INT_VALUE)
1900#define DUK_STRIDX_COMPILE 107
1901#define DUK_HEAP_STRING_COMPILE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_COMPILE)
1902#define DUK_HTHREAD_STRING_COMPILE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_COMPILE)
1903#define DUK_STRIDX_INPUT 108
1904#define DUK_HEAP_STRING_INPUT(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INPUT)
1905#define DUK_HTHREAD_STRING_INPUT(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INPUT)
1906#define DUK_STRIDX_ERR_CREATE 109
1907#define DUK_HEAP_STRING_ERR_CREATE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_ERR_CREATE)
1908#define DUK_HTHREAD_STRING_ERR_CREATE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_ERR_CREATE)
1909#define DUK_STRIDX_ERR_THROW 110
1910#define DUK_HEAP_STRING_ERR_THROW(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_ERR_THROW)
1911#define DUK_HTHREAD_STRING_ERR_THROW(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_ERR_THROW)
1912#define DUK_STRIDX_ENV 111
1913#define DUK_HEAP_STRING_ENV(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_ENV)
1914#define DUK_HTHREAD_STRING_ENV(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_ENV)
1915#define DUK_STRIDX_HEX 112
1916#define DUK_HEAP_STRING_HEX(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_HEX)
1917#define DUK_HTHREAD_STRING_HEX(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_HEX)
1918#define DUK_STRIDX_BASE64 113
1919#define DUK_HEAP_STRING_BASE64(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_BASE64)
1920#define DUK_HTHREAD_STRING_BASE64(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_BASE64)
1921#define DUK_STRIDX_JX 114
1922#define DUK_HEAP_STRING_JX(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JX)
1923#define DUK_HTHREAD_STRING_JX(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JX)
1924#define DUK_STRIDX_JC 115
1925#define DUK_HEAP_STRING_JC(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JC)
1926#define DUK_HTHREAD_STRING_JC(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JC)
1927#define DUK_STRIDX_JSON_EXT_UNDEFINED 116
1928#define DUK_HEAP_STRING_JSON_EXT_UNDEFINED(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JSON_EXT_UNDEFINED)
1929#define DUK_HTHREAD_STRING_JSON_EXT_UNDEFINED(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JSON_EXT_UNDEFINED)
1930#define DUK_STRIDX_JSON_EXT_NAN 117
1931#define DUK_HEAP_STRING_JSON_EXT_NAN(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JSON_EXT_NAN)
1932#define DUK_HTHREAD_STRING_JSON_EXT_NAN(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JSON_EXT_NAN)
1933#define DUK_STRIDX_JSON_EXT_POSINF 118
1934#define DUK_HEAP_STRING_JSON_EXT_POSINF(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JSON_EXT_POSINF)
1935#define DUK_HTHREAD_STRING_JSON_EXT_POSINF(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JSON_EXT_POSINF)
1936#define DUK_STRIDX_JSON_EXT_NEGINF 119
1937#define DUK_HEAP_STRING_JSON_EXT_NEGINF(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JSON_EXT_NEGINF)
1938#define DUK_HTHREAD_STRING_JSON_EXT_NEGINF(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JSON_EXT_NEGINF)
1939#define DUK_STRIDX_JSON_EXT_FUNCTION1 120
1940#define DUK_HEAP_STRING_JSON_EXT_FUNCTION1(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JSON_EXT_FUNCTION1)
1941#define DUK_HTHREAD_STRING_JSON_EXT_FUNCTION1(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JSON_EXT_FUNCTION1)
1942#define DUK_STRIDX_JSON_EXT_FUNCTION2 121
1943#define DUK_HEAP_STRING_JSON_EXT_FUNCTION2(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_JSON_EXT_FUNCTION2)
1944#define DUK_HTHREAD_STRING_JSON_EXT_FUNCTION2(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_JSON_EXT_FUNCTION2)
1945#define DUK_STRIDX_BREAK 122
1946#define DUK_HEAP_STRING_BREAK(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_BREAK)
1947#define DUK_HTHREAD_STRING_BREAK(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_BREAK)
1948#define DUK_STRIDX_CASE 123
1949#define DUK_HEAP_STRING_CASE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CASE)
1950#define DUK_HTHREAD_STRING_CASE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CASE)
1951#define DUK_STRIDX_CATCH 124
1952#define DUK_HEAP_STRING_CATCH(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CATCH)
1953#define DUK_HTHREAD_STRING_CATCH(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CATCH)
1954#define DUK_STRIDX_CONTINUE 125
1955#define DUK_HEAP_STRING_CONTINUE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CONTINUE)
1956#define DUK_HTHREAD_STRING_CONTINUE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CONTINUE)
1957#define DUK_STRIDX_DEBUGGER 126
1958#define DUK_HEAP_STRING_DEBUGGER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_DEBUGGER)
1959#define DUK_HTHREAD_STRING_DEBUGGER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_DEBUGGER)
1960#define DUK_STRIDX_DEFAULT 127
1961#define DUK_HEAP_STRING_DEFAULT(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_DEFAULT)
1962#define DUK_HTHREAD_STRING_DEFAULT(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_DEFAULT)
1963#define DUK_STRIDX_DELETE 128
1964#define DUK_HEAP_STRING_DELETE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_DELETE)
1965#define DUK_HTHREAD_STRING_DELETE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_DELETE)
1966#define DUK_STRIDX_DO 129
1967#define DUK_HEAP_STRING_DO(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_DO)
1968#define DUK_HTHREAD_STRING_DO(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_DO)
1969#define DUK_STRIDX_ELSE 130
1970#define DUK_HEAP_STRING_ELSE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_ELSE)
1971#define DUK_HTHREAD_STRING_ELSE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_ELSE)
1972#define DUK_STRIDX_FINALLY 131
1973#define DUK_HEAP_STRING_FINALLY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_FINALLY)
1974#define DUK_HTHREAD_STRING_FINALLY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_FINALLY)
1975#define DUK_STRIDX_FOR 132
1976#define DUK_HEAP_STRING_FOR(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_FOR)
1977#define DUK_HTHREAD_STRING_FOR(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_FOR)
1978#define DUK_STRIDX_LC_FUNCTION 133
1979#define DUK_HEAP_STRING_LC_FUNCTION(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_FUNCTION)
1980#define DUK_HTHREAD_STRING_LC_FUNCTION(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_FUNCTION)
1981#define DUK_STRIDX_IF 134
1982#define DUK_HEAP_STRING_IF(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_IF)
1983#define DUK_HTHREAD_STRING_IF(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_IF)
1984#define DUK_STRIDX_IN 135
1985#define DUK_HEAP_STRING_IN(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_IN)
1986#define DUK_HTHREAD_STRING_IN(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_IN)
1987#define DUK_STRIDX_INSTANCEOF 136
1988#define DUK_HEAP_STRING_INSTANCEOF(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INSTANCEOF)
1989#define DUK_HTHREAD_STRING_INSTANCEOF(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INSTANCEOF)
1990#define DUK_STRIDX_NEW 137
1991#define DUK_HEAP_STRING_NEW(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_NEW)
1992#define DUK_HTHREAD_STRING_NEW(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_NEW)
1993#define DUK_STRIDX_RETURN 138
1994#define DUK_HEAP_STRING_RETURN(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_RETURN)
1995#define DUK_HTHREAD_STRING_RETURN(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_RETURN)
1996#define DUK_STRIDX_SWITCH 139
1997#define DUK_HEAP_STRING_SWITCH(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_SWITCH)
1998#define DUK_HTHREAD_STRING_SWITCH(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_SWITCH)
1999#define DUK_STRIDX_THIS 140
2000#define DUK_HEAP_STRING_THIS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_THIS)
2001#define DUK_HTHREAD_STRING_THIS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_THIS)
2002#define DUK_STRIDX_THROW 141
2003#define DUK_HEAP_STRING_THROW(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_THROW)
2004#define DUK_HTHREAD_STRING_THROW(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_THROW)
2005#define DUK_STRIDX_TRY 142
2006#define DUK_HEAP_STRING_TRY(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TRY)
2007#define DUK_HTHREAD_STRING_TRY(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TRY)
2008#define DUK_STRIDX_TYPEOF 143
2009#define DUK_HEAP_STRING_TYPEOF(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TYPEOF)
2010#define DUK_HTHREAD_STRING_TYPEOF(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TYPEOF)
2011#define DUK_STRIDX_VAR 144
2012#define DUK_HEAP_STRING_VAR(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_VAR)
2013#define DUK_HTHREAD_STRING_VAR(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_VAR)
2014#define DUK_STRIDX_CONST 145
2015#define DUK_HEAP_STRING_CONST(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CONST)
2016#define DUK_HTHREAD_STRING_CONST(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CONST)
2017#define DUK_STRIDX_VOID 146
2018#define DUK_HEAP_STRING_VOID(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_VOID)
2019#define DUK_HTHREAD_STRING_VOID(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_VOID)
2020#define DUK_STRIDX_WHILE 147
2021#define DUK_HEAP_STRING_WHILE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_WHILE)
2022#define DUK_HTHREAD_STRING_WHILE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_WHILE)
2023#define DUK_STRIDX_WITH 148
2024#define DUK_HEAP_STRING_WITH(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_WITH)
2025#define DUK_HTHREAD_STRING_WITH(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_WITH)
2026#define DUK_STRIDX_CLASS 149
2027#define DUK_HEAP_STRING_CLASS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_CLASS)
2028#define DUK_HTHREAD_STRING_CLASS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_CLASS)
2029#define DUK_STRIDX_ENUM 150
2030#define DUK_HEAP_STRING_ENUM(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_ENUM)
2031#define DUK_HTHREAD_STRING_ENUM(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_ENUM)
2032#define DUK_STRIDX_EXPORT 151
2033#define DUK_HEAP_STRING_EXPORT(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_EXPORT)
2034#define DUK_HTHREAD_STRING_EXPORT(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_EXPORT)
2035#define DUK_STRIDX_EXTENDS 152
2036#define DUK_HEAP_STRING_EXTENDS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_EXTENDS)
2037#define DUK_HTHREAD_STRING_EXTENDS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_EXTENDS)
2038#define DUK_STRIDX_IMPORT 153
2039#define DUK_HEAP_STRING_IMPORT(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_IMPORT)
2040#define DUK_HTHREAD_STRING_IMPORT(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_IMPORT)
2041#define DUK_STRIDX_SUPER 154
2042#define DUK_HEAP_STRING_SUPER(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_SUPER)
2043#define DUK_HTHREAD_STRING_SUPER(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_SUPER)
2044#define DUK_STRIDX_LC_NULL 155
2045#define DUK_HEAP_STRING_LC_NULL(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LC_NULL)
2046#define DUK_HTHREAD_STRING_LC_NULL(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LC_NULL)
2047#define DUK_STRIDX_TRUE 156
2048#define DUK_HEAP_STRING_TRUE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_TRUE)
2049#define DUK_HTHREAD_STRING_TRUE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_TRUE)
2050#define DUK_STRIDX_FALSE 157
2051#define DUK_HEAP_STRING_FALSE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_FALSE)
2052#define DUK_HTHREAD_STRING_FALSE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_FALSE)
2053#define DUK_STRIDX_IMPLEMENTS 158
2054#define DUK_HEAP_STRING_IMPLEMENTS(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_IMPLEMENTS)
2055#define DUK_HTHREAD_STRING_IMPLEMENTS(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_IMPLEMENTS)
2056#define DUK_STRIDX_INTERFACE 159
2057#define DUK_HEAP_STRING_INTERFACE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_INTERFACE)
2058#define DUK_HTHREAD_STRING_INTERFACE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_INTERFACE)
2059#define DUK_STRIDX_LET 160
2060#define DUK_HEAP_STRING_LET(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_LET)
2061#define DUK_HTHREAD_STRING_LET(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_LET)
2062#define DUK_STRIDX_PACKAGE 161
2063#define DUK_HEAP_STRING_PACKAGE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_PACKAGE)
2064#define DUK_HTHREAD_STRING_PACKAGE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_PACKAGE)
2065#define DUK_STRIDX_PRIVATE 162
2066#define DUK_HEAP_STRING_PRIVATE(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_PRIVATE)
2067#define DUK_HTHREAD_STRING_PRIVATE(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_PRIVATE)
2068#define DUK_STRIDX_PROTECTED 163
2069#define DUK_HEAP_STRING_PROTECTED(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_PROTECTED)
2070#define DUK_HTHREAD_STRING_PROTECTED(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_PROTECTED)
2071#define DUK_STRIDX_PUBLIC 164
2072#define DUK_HEAP_STRING_PUBLIC(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_PUBLIC)
2073#define DUK_HTHREAD_STRING_PUBLIC(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_PUBLIC)
2074#define DUK_STRIDX_STATIC 165
2075#define DUK_HEAP_STRING_STATIC(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_STATIC)
2076#define DUK_HTHREAD_STRING_STATIC(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_STATIC)
2077#define DUK_STRIDX_YIELD 166
2078#define DUK_HEAP_STRING_YIELD(heap) DUK_HEAP_GET_STRING((heap),DUK_STRIDX_YIELD)
2079#define DUK_HTHREAD_STRING_YIELD(thr) DUK_HTHREAD_GET_STRING((thr),DUK_STRIDX_YIELD)
2081#define DUK_HEAP_NUM_STRINGS 167
2082#define DUK_STRIDX_START_RESERVED 122
2083#define DUK_STRIDX_START_STRICT_RESERVED 158
2084#define DUK_STRIDX_END_RESERVED 167
2089#if !defined(DUK_SINGLE_FILE)
2092#define DUK_STRDATA_MAX_STRLEN 27
2093#define DUK_STRDATA_DATA_LENGTH 972
2096#if defined(DUK_USE_ROM_OBJECTS)
2097#error RAM support not enabled, rerun configure.py with --ram-support
2283#if !defined(DUK_SINGLE_FILE)
2286#define DUK_BIDX_GLOBAL 0
2287#define DUK_BIDX_GLOBAL_ENV 1
2288#define DUK_BIDX_OBJECT_CONSTRUCTOR 2
2289#define DUK_BIDX_OBJECT_PROTOTYPE 3
2290#define DUK_BIDX_FUNCTION_CONSTRUCTOR 4
2291#define DUK_BIDX_FUNCTION_PROTOTYPE 5
2292#define DUK_BIDX_NATIVE_FUNCTION_PROTOTYPE 6
2293#define DUK_BIDX_ARRAY_CONSTRUCTOR 7
2294#define DUK_BIDX_ARRAY_PROTOTYPE 8
2295#define DUK_BIDX_STRING_CONSTRUCTOR 9
2296#define DUK_BIDX_STRING_PROTOTYPE 10
2297#define DUK_BIDX_BOOLEAN_CONSTRUCTOR 11
2298#define DUK_BIDX_BOOLEAN_PROTOTYPE 12
2299#define DUK_BIDX_NUMBER_CONSTRUCTOR 13
2300#define DUK_BIDX_NUMBER_PROTOTYPE 14
2301#define DUK_BIDX_DATE_CONSTRUCTOR 15
2302#define DUK_BIDX_DATE_PROTOTYPE 16
2303#define DUK_BIDX_REGEXP_CONSTRUCTOR 17
2304#define DUK_BIDX_REGEXP_PROTOTYPE 18
2305#define DUK_BIDX_ERROR_CONSTRUCTOR 19
2306#define DUK_BIDX_ERROR_PROTOTYPE 20
2307#define DUK_BIDX_EVAL_ERROR_CONSTRUCTOR 21
2308#define DUK_BIDX_EVAL_ERROR_PROTOTYPE 22
2309#define DUK_BIDX_RANGE_ERROR_CONSTRUCTOR 23
2310#define DUK_BIDX_RANGE_ERROR_PROTOTYPE 24
2311#define DUK_BIDX_REFERENCE_ERROR_CONSTRUCTOR 25
2312#define DUK_BIDX_REFERENCE_ERROR_PROTOTYPE 26
2313#define DUK_BIDX_SYNTAX_ERROR_CONSTRUCTOR 27
2314#define DUK_BIDX_SYNTAX_ERROR_PROTOTYPE 28
2315#define DUK_BIDX_TYPE_ERROR_CONSTRUCTOR 29
2316#define DUK_BIDX_TYPE_ERROR_PROTOTYPE 30
2317#define DUK_BIDX_URI_ERROR_CONSTRUCTOR 31
2318#define DUK_BIDX_URI_ERROR_PROTOTYPE 32
2319#define DUK_BIDX_TYPE_ERROR_THROWER 33
2320#define DUK_BIDX_DUKTAPE 34
2321#define DUK_BIDX_THREAD_PROTOTYPE 35
2322#define DUK_BIDX_POINTER_PROTOTYPE 36
2323#define DUK_BIDX_DOUBLE_ERROR 37
2324#define DUK_BIDX_SYMBOL_PROTOTYPE 38
2325#define DUK_BIDX_ARRAYBUFFER_PROTOTYPE 39
2326#define DUK_BIDX_DATAVIEW_PROTOTYPE 40
2327#define DUK_BIDX_INT8ARRAY_PROTOTYPE 41
2328#define DUK_BIDX_UINT8ARRAY_PROTOTYPE 42
2329#define DUK_BIDX_UINT8CLAMPEDARRAY_PROTOTYPE 43
2330#define DUK_BIDX_INT16ARRAY_PROTOTYPE 44
2331#define DUK_BIDX_UINT16ARRAY_PROTOTYPE 45
2332#define DUK_BIDX_INT32ARRAY_PROTOTYPE 46
2333#define DUK_BIDX_UINT32ARRAY_PROTOTYPE 47
2334#define DUK_BIDX_FLOAT32ARRAY_PROTOTYPE 48
2335#define DUK_BIDX_FLOAT64ARRAY_PROTOTYPE 49
2336#define DUK_BIDX_NODEJS_BUFFER_PROTOTYPE 50
2337#define DUK_NUM_BUILTINS 51
2338#define DUK_NUM_BIDX_BUILTINS 51
2339#define DUK_NUM_ALL_BUILTINS 80
2340#if defined(DUK_USE_DOUBLE_LE)
2341#if !defined(DUK_SINGLE_FILE)
2344#define DUK_BUILTINS_DATA_LENGTH 4281
2345#elif defined(DUK_USE_DOUBLE_BE)
2346#if !defined(DUK_SINGLE_FILE)
2349#define DUK_BUILTINS_DATA_LENGTH 4281
2350#elif defined(DUK_USE_DOUBLE_ME)
2351#if !defined(DUK_SINGLE_FILE)
2354#define DUK_BUILTINS_DATA_LENGTH 4281
2356#error invalid endianness defines
2366#if !defined(DUK_UTIL_H_INCLUDED)
2367#define DUK_UTIL_H_INCLUDED
2373#define DUK_DOUBLE_2TO32 4294967296.0
2374#define DUK_DOUBLE_2TO31 2147483648.0
2375#define DUK_DOUBLE_LOG2E 1.4426950408889634
2376#define DUK_DOUBLE_LOG10E 0.4342944819032518
2382#if defined(DUK_USE_INTEGER_LE)
2383#define DUK_HTON32(x) DUK_BSWAP32((x))
2384#define DUK_NTOH32(x) DUK_BSWAP32((x))
2385#define DUK_HTON16(x) DUK_BSWAP16((x))
2386#define DUK_NTOH16(x) DUK_BSWAP16((x))
2387#elif defined(DUK_USE_INTEGER_BE)
2388#define DUK_HTON32(x) (x)
2389#define DUK_NTOH32(x) (x)
2390#define DUK_HTON16(x) (x)
2391#define DUK_NTOH16(x) (x)
2393#error internal error, endianness defines broken
2408#define DUK_BD_BITPACKED_STRING_MAXLEN 256
2429#define DUK_RAW_WRITE_U8(ptr, val) \
2431 *(ptr) = (duk_uint8_t) (val); \
2433#define DUK_RAW_WRITE_U16_BE(ptr, val) duk_raw_write_u16_be((ptr), (duk_uint16_t) (val))
2434#define DUK_RAW_WRITE_U32_BE(ptr, val) duk_raw_write_u32_be((ptr), (duk_uint32_t) (val))
2435#define DUK_RAW_WRITE_FLOAT_BE(ptr, val) duk_raw_write_float_be((ptr), (duk_float_t) (val))
2436#define DUK_RAW_WRITE_DOUBLE_BE(ptr, val) duk_raw_write_double_be((ptr), (duk_double_t) (val))
2437#define DUK_RAW_WRITE_XUTF8(ptr, val) duk_raw_write_xutf8((ptr), (duk_ucodepoint_t) (val))
2439#define DUK_RAW_WRITEINC_U8(ptr, val) \
2441 *(ptr)++ = (duk_uint8_t) (val); \
2443#define DUK_RAW_WRITEINC_U16_BE(ptr, val) duk_raw_writeinc_u16_be(&(ptr), (duk_uint16_t) (val))
2444#define DUK_RAW_WRITEINC_U32_BE(ptr, val) duk_raw_writeinc_u32_be(&(ptr), (duk_uint32_t) (val))
2445#define DUK_RAW_WRITEINC_FLOAT_BE(ptr, val) duk_raw_writeinc_float_be(&(ptr), (duk_float_t) (val))
2446#define DUK_RAW_WRITEINC_DOUBLE_BE(ptr, val) duk_raw_writeinc_double_be(&(ptr), (duk_double_t) (val))
2447#define DUK_RAW_WRITEINC_XUTF8(ptr, val) duk_raw_writeinc_xutf8(&(ptr), (duk_ucodepoint_t) (val))
2448#define DUK_RAW_WRITEINC_CESU8(ptr, val) duk_raw_writeinc_cesu8(&(ptr), (duk_ucodepoint_t) (val))
2450#define DUK_RAW_READ_U8(ptr) ((duk_uint8_t) (*(ptr)))
2451#define DUK_RAW_READ_U16_BE(ptr) duk_raw_read_u16_be((ptr));
2452#define DUK_RAW_READ_U32_BE(ptr) duk_raw_read_u32_be((ptr));
2453#define DUK_RAW_READ_DOUBLE_BE(ptr) duk_raw_read_double_be((ptr));
2455#define DUK_RAW_READINC_U8(ptr) ((duk_uint8_t) (*(ptr)++))
2456#define DUK_RAW_READINC_U16_BE(ptr) duk_raw_readinc_u16_be(&(ptr));
2457#define DUK_RAW_READINC_U32_BE(ptr) duk_raw_readinc_u32_be(&(ptr));
2458#define DUK_RAW_READINC_DOUBLE_BE(ptr) duk_raw_readinc_double_be(&(ptr));
2503#if defined(DUK_USE_PREFER_SIZE)
2504#define DUK_BW_SLACK_ADD 64
2505#define DUK_BW_SLACK_SHIFT 4
2507#define DUK_BW_SLACK_ADD 64
2508#define DUK_BW_SLACK_SHIFT 2
2513#define DUK_BW_INIT_PUSHBUF(thr, bw_ctx, sz) \
2515 duk_bw_init_pushbuf((thr), (bw_ctx), (sz)); \
2517#define DUK_BW_INIT_WITHBUF(thr, bw_ctx, buf) \
2519 duk_bw_init((thr), (bw_ctx), (buf)); \
2521#define DUK_BW_COMPACT(thr, bw_ctx) \
2524 duk_bw_compact((thr), (bw_ctx)); \
2526#define DUK_BW_PUSH_AS_STRING(thr, bw_ctx) \
2528 duk_push_lstring((thr), (const char *) (bw_ctx)->p_base, (duk_size_t) ((bw_ctx)->p - (bw_ctx)->p_base)); \
2536#if defined(DUK_USE_ASSERTIONS)
2538#define DUK_BW_ASSERT_VALID_EXPR(thr, bw_ctx) (duk_bw_assert_valid((thr), (bw_ctx)))
2539#define DUK_BW_ASSERT_VALID(thr, bw_ctx) \
2541 duk_bw_assert_valid((thr), (bw_ctx)); \
2544#define DUK_BW_ASSERT_VALID_EXPR(thr, bw_ctx) DUK_ASSERT_EXPR(1)
2545#define DUK_BW_ASSERT_VALID(thr, bw_ctx) \
2552#define DUK_BW_GET_PTR(thr, bw_ctx) ((bw_ctx)->p)
2553#define DUK_BW_SET_PTR(thr, bw_ctx, ptr) \
2555 (bw_ctx)->p = (ptr); \
2557#define DUK_BW_ADD_PTR(thr, bw_ctx, delta) \
2559 (bw_ctx)->p += (delta); \
2561#define DUK_BW_GET_BASEPTR(thr, bw_ctx) ((bw_ctx)->p_base)
2562#define DUK_BW_GET_LIMITPTR(thr, bw_ctx) ((bw_ctx)->p_limit)
2563#define DUK_BW_GET_SIZE(thr, bw_ctx) ((duk_size_t) ((bw_ctx)->p - (bw_ctx)->p_base))
2564#define DUK_BW_SET_SIZE(thr, bw_ctx, sz) \
2566 DUK_ASSERT((duk_size_t) (sz) <= (duk_size_t) ((bw_ctx)->p - (bw_ctx)->p_base)); \
2567 (bw_ctx)->p = (bw_ctx)->p_base + (sz); \
2569#define DUK_BW_RESET_SIZE(thr, bw_ctx) \
2572 (bw_ctx)->p = (bw_ctx)->p_base; \
2574#define DUK_BW_GET_BUFFER(thr, bw_ctx) ((bw_ctx)->buf)
2578#define DUK_BW_ENSURE(thr, bw_ctx, sz) \
2580 duk_size_t duk__sz, duk__space; \
2581 DUK_BW_ASSERT_VALID((thr), (bw_ctx)); \
2583 duk__space = (duk_size_t) ((bw_ctx)->p_limit - (bw_ctx)->p); \
2584 if (duk__space < duk__sz) { \
2585 (void) duk_bw_resize((thr), (bw_ctx), duk__sz); \
2590#define DUK_BW_ENSURE_RAW(thr, bw_ctx, sz, ptr) \
2591 (((duk_size_t) ((bw_ctx)->p_limit - (ptr)) >= (sz)) ? (ptr) : ((bw_ctx)->p = (ptr), duk_bw_resize((thr), (bw_ctx), (sz))))
2592#define DUK_BW_ENSURE_GETPTR(thr, bw_ctx, sz) DUK_BW_ENSURE_RAW((thr), (bw_ctx), (sz), (bw_ctx)->p)
2593#define DUK_BW_ASSERT_SPACE_EXPR(thr, bw_ctx, sz) \
2594 (DUK_BW_ASSERT_VALID_EXPR((thr), (bw_ctx)), \
2595 DUK_ASSERT_EXPR((duk_size_t) ((bw_ctx)->p_limit - (bw_ctx)->p) >= (duk_size_t) (sz)))
2596#define DUK_BW_ASSERT_SPACE(thr, bw_ctx, sz) \
2598 DUK_BW_ASSERT_SPACE_EXPR((thr), (bw_ctx), (sz)); \
2603#define DUK_BW_SETPTR_AND_COMPACT(thr, bw_ctx, ptr) \
2605 (bw_ctx)->p = (ptr); \
2606 duk_bw_compact((thr), (bw_ctx)); \
2615#define DUK_BW_WRITE_RAW_U8(thr, bw_ctx, val) \
2617 DUK_BW_ASSERT_SPACE((thr), (bw_ctx), 1); \
2618 *(bw_ctx)->p++ = (duk_uint8_t) (val); \
2620#define DUK_BW_WRITE_RAW_U8_2(thr, bw_ctx, val1, val2) \
2622 duk_uint8_t *duk__p; \
2623 DUK_BW_ASSERT_SPACE((thr), (bw_ctx), 2); \
2624 duk__p = (bw_ctx)->p; \
2625 *duk__p++ = (duk_uint8_t) (val1); \
2626 *duk__p++ = (duk_uint8_t) (val2); \
2627 (bw_ctx)->p = duk__p; \
2629#define DUK_BW_WRITE_RAW_U8_3(thr, bw_ctx, val1, val2, val3) \
2631 duk_uint8_t *duk__p; \
2632 DUK_BW_ASSERT_SPACE((thr), (bw_ctx), 3); \
2633 duk__p = (bw_ctx)->p; \
2634 *duk__p++ = (duk_uint8_t) (val1); \
2635 *duk__p++ = (duk_uint8_t) (val2); \
2636 *duk__p++ = (duk_uint8_t) (val3); \
2637 (bw_ctx)->p = duk__p; \
2639#define DUK_BW_WRITE_RAW_U8_4(thr, bw_ctx, val1, val2, val3, val4) \
2641 duk_uint8_t *duk__p; \
2642 DUK_BW_ASSERT_SPACE((thr), (bw_ctx), 4); \
2643 duk__p = (bw_ctx)->p; \
2644 *duk__p++ = (duk_uint8_t) (val1); \
2645 *duk__p++ = (duk_uint8_t) (val2); \
2646 *duk__p++ = (duk_uint8_t) (val3); \
2647 *duk__p++ = (duk_uint8_t) (val4); \
2648 (bw_ctx)->p = duk__p; \
2650#define DUK_BW_WRITE_RAW_U8_5(thr, bw_ctx, val1, val2, val3, val4, val5) \
2652 duk_uint8_t *duk__p; \
2653 DUK_BW_ASSERT_SPACE((thr), (bw_ctx), 5); \
2654 duk__p = (bw_ctx)->p; \
2655 *duk__p++ = (duk_uint8_t) (val1); \
2656 *duk__p++ = (duk_uint8_t) (val2); \
2657 *duk__p++ = (duk_uint8_t) (val3); \
2658 *duk__p++ = (duk_uint8_t) (val4); \
2659 *duk__p++ = (duk_uint8_t) (val5); \
2660 (bw_ctx)->p = duk__p; \
2662#define DUK_BW_WRITE_RAW_U8_6(thr, bw_ctx, val1, val2, val3, val4, val5, val6) \
2664 duk_uint8_t *duk__p; \
2665 DUK_BW_ASSERT_SPACE((thr), (bw_ctx), 6); \
2666 duk__p = (bw_ctx)->p; \
2667 *duk__p++ = (duk_uint8_t) (val1); \
2668 *duk__p++ = (duk_uint8_t) (val2); \
2669 *duk__p++ = (duk_uint8_t) (val3); \
2670 *duk__p++ = (duk_uint8_t) (val4); \
2671 *duk__p++ = (duk_uint8_t) (val5); \
2672 *duk__p++ = (duk_uint8_t) (val6); \
2673 (bw_ctx)->p = duk__p; \
2675#define DUK_BW_WRITE_RAW_XUTF8(thr, bw_ctx, cp) \
2677 duk_ucodepoint_t duk__cp; \
2678 duk_small_int_t duk__enc_len; \
2679 duk__cp = (duk_ucodepoint_t) (cp); \
2680 DUK_BW_ASSERT_SPACE((thr), (bw_ctx), duk_unicode_get_xutf8_length(duk__cp)); \
2681 duk__enc_len = duk_unicode_encode_xutf8(duk__cp, (bw_ctx)->p); \
2682 (bw_ctx)->p += duk__enc_len; \
2684#define DUK_BW_WRITE_RAW_CESU8(thr, bw_ctx, cp) \
2686 duk_ucodepoint_t duk__cp; \
2687 duk_small_int_t duk__enc_len; \
2688 duk__cp = (duk_ucodepoint_t) (cp); \
2689 DUK_BW_ASSERT_SPACE((thr), (bw_ctx), duk_unicode_get_cesu8_length(duk__cp)); \
2690 duk__enc_len = duk_unicode_encode_cesu8(duk__cp, (bw_ctx)->p); \
2691 (bw_ctx)->p += duk__enc_len; \
2695#define DUK_BW_WRITE_RAW_BYTES(thr, bw_ctx, valptr, valsz) \
2697 const void *duk__valptr; \
2698 duk_size_t duk__valsz; \
2699 duk__valptr = (const void *) (valptr); \
2700 duk__valsz = (duk_size_t) (valsz); \
2701 duk_memcpy_unsafe((void *) ((bw_ctx)->p), duk__valptr, duk__valsz); \
2702 (bw_ctx)->p += duk__valsz; \
2704#define DUK_BW_WRITE_RAW_CSTRING(thr, bw_ctx, val) \
2706 const duk_uint8_t *duk__val; \
2707 duk_size_t duk__val_len; \
2708 duk__val = (const duk_uint8_t *) (val); \
2709 duk__val_len = DUK_STRLEN((const char *) duk__val); \
2710 duk_memcpy_unsafe((void *) ((bw_ctx)->p), (const void *) duk__val, duk__val_len); \
2711 (bw_ctx)->p += duk__val_len; \
2713#define DUK_BW_WRITE_RAW_HSTRING(thr, bw_ctx, val) \
2715 duk_size_t duk__val_len; \
2716 duk__val_len = DUK_HSTRING_GET_BYTELEN((val)); \
2717 duk_memcpy_unsafe((void *) ((bw_ctx)->p), (const void *) DUK_HSTRING_GET_DATA((val)), duk__val_len); \
2718 (bw_ctx)->p += duk__val_len; \
2720#define DUK_BW_WRITE_RAW_HBUFFER(thr, bw_ctx, val) \
2722 duk_size_t duk__val_len; \
2723 duk__val_len = DUK_HBUFFER_GET_SIZE((val)); \
2724 duk_memcpy_unsafe((void *) ((bw_ctx)->p), \
2725 (const void *) DUK_HBUFFER_GET_DATA_PTR((thr)->heap, (val)), \
2727 (bw_ctx)->p += duk__val_len; \
2729#define DUK_BW_WRITE_RAW_HBUFFER_FIXED(thr, bw_ctx, val) \
2731 duk_size_t duk__val_len; \
2732 duk__val_len = DUK_HBUFFER_FIXED_GET_SIZE((val)); \
2733 duk_memcpy_unsafe((void *) ((bw_ctx)->p), \
2734 (const void *) DUK_HBUFFER_FIXED_GET_DATA_PTR((thr)->heap, (val)), \
2736 (bw_ctx)->p += duk__val_len; \
2738#define DUK_BW_WRITE_RAW_HBUFFER_DYNAMIC(thr, bw_ctx, val) \
2740 duk_size_t duk__val_len; \
2741 duk__val_len = DUK_HBUFFER_DYNAMIC_GET_SIZE((val)); \
2742 duk_memcpy_unsafe((void *) ((bw_ctx)->p), \
2743 (const void *) DUK_HBUFFER_DYNAMIC_GET_DATA_PTR((thr)->heap, (val)), \
2745 (bw_ctx)->p += duk__val_len; \
2749#define DUK_BW_WRITE_RAW_SLICE(thr, bw, dst_off, dst_len) duk_bw_write_raw_slice((thr), (bw), (dst_off), (dst_len))
2752#define DUK_BW_INSERT_RAW_BYTES(thr, bw, dst_off, buf, len) duk_bw_insert_raw_bytes((thr), (bw), (dst_off), (buf), (len))
2757#define DUK_BW_INSERT_RAW_SLICE(thr, bw, dst_off, src_off, len) duk_bw_insert_raw_slice((thr), (bw), (dst_off), (src_off), (len))
2763#define DUK_BW_INSERT_RAW_AREA(thr, bw, off, len) duk_bw_insert_raw_area((thr), (bw), (off), (len))
2766#define DUK_BW_REMOVE_RAW_SLICE(thr, bw, off, len) duk_bw_remove_raw_slice((thr), (bw), (off), (len))
2770#define DUK_BW_WRITE_ENSURE_U8(thr, bw_ctx, val) \
2772 DUK_BW_ENSURE((thr), (bw_ctx), 1); \
2773 DUK_BW_WRITE_RAW_U8((thr), (bw_ctx), (val)); \
2775#define DUK_BW_WRITE_ENSURE_U8_2(thr, bw_ctx, val1, val2) \
2777 DUK_BW_ENSURE((thr), (bw_ctx), 2); \
2778 DUK_BW_WRITE_RAW_U8_2((thr), (bw_ctx), (val1), (val2)); \
2780#define DUK_BW_WRITE_ENSURE_U8_3(thr, bw_ctx, val1, val2, val3) \
2782 DUK_BW_ENSURE((thr), (bw_ctx), 3); \
2783 DUK_BW_WRITE_RAW_U8_3((thr), (bw_ctx), (val1), (val2), (val3)); \
2785#define DUK_BW_WRITE_ENSURE_U8_4(thr, bw_ctx, val1, val2, val3, val4) \
2787 DUK_BW_ENSURE((thr), (bw_ctx), 4); \
2788 DUK_BW_WRITE_RAW_U8_4((thr), (bw_ctx), (val1), (val2), (val3), (val4)); \
2790#define DUK_BW_WRITE_ENSURE_U8_5(thr, bw_ctx, val1, val2, val3, val4, val5) \
2792 DUK_BW_ENSURE((thr), (bw_ctx), 5); \
2793 DUK_BW_WRITE_RAW_U8_5((thr), (bw_ctx), (val1), (val2), (val3), (val4), (val5)); \
2795#define DUK_BW_WRITE_ENSURE_U8_6(thr, bw_ctx, val1, val2, val3, val4, val5, val6) \
2797 DUK_BW_ENSURE((thr), (bw_ctx), 6); \
2798 DUK_BW_WRITE_RAW_U8_6((thr), (bw_ctx), (val1), (val2), (val3), (val4), (val5), (val6)); \
2800#define DUK_BW_WRITE_ENSURE_XUTF8(thr, bw_ctx, cp) \
2802 DUK_BW_ENSURE((thr), (bw_ctx), DUK_UNICODE_MAX_XUTF8_LENGTH); \
2803 DUK_BW_WRITE_RAW_XUTF8((thr), (bw_ctx), (cp)); \
2805#define DUK_BW_WRITE_ENSURE_CESU8(thr, bw_ctx, cp) \
2807 DUK_BW_ENSURE((thr), (bw_ctx), DUK_UNICODE_MAX_CESU8_LENGTH); \
2808 DUK_BW_WRITE_RAW_CESU8((thr), (bw_ctx), (cp)); \
2812#define DUK_BW_WRITE_ENSURE_BYTES(thr, bw_ctx, valptr, valsz) \
2814 const void *duk__valptr; \
2815 duk_size_t duk__valsz; \
2816 duk__valptr = (const void *) (valptr); \
2817 duk__valsz = (duk_size_t) (valsz); \
2818 DUK_BW_ENSURE((thr), (bw_ctx), duk__valsz); \
2819 duk_memcpy_unsafe((void *) ((bw_ctx)->p), duk__valptr, duk__valsz); \
2820 (bw_ctx)->p += duk__valsz; \
2822#define DUK_BW_WRITE_ENSURE_CSTRING(thr, bw_ctx, val) \
2824 const duk_uint8_t *duk__val; \
2825 duk_size_t duk__val_len; \
2826 duk__val = (const duk_uint8_t *) (val); \
2827 duk__val_len = DUK_STRLEN((const char *) duk__val); \
2828 DUK_BW_ENSURE((thr), (bw_ctx), duk__val_len); \
2829 duk_memcpy_unsafe((void *) ((bw_ctx)->p), (const void *) duk__val, duk__val_len); \
2830 (bw_ctx)->p += duk__val_len; \
2832#define DUK_BW_WRITE_ENSURE_HSTRING(thr, bw_ctx, val) \
2834 duk_size_t duk__val_len; \
2835 duk__val_len = DUK_HSTRING_GET_BYTELEN((val)); \
2836 DUK_BW_ENSURE((thr), (bw_ctx), duk__val_len); \
2837 duk_memcpy_unsafe((void *) ((bw_ctx)->p), (const void *) DUK_HSTRING_GET_DATA((val)), duk__val_len); \
2838 (bw_ctx)->p += duk__val_len; \
2840#define DUK_BW_WRITE_ENSURE_HBUFFER(thr, bw_ctx, val) \
2842 duk_size_t duk__val_len; \
2843 duk__val_len = DUK_HBUFFER_GET_SIZE((val)); \
2844 DUK_BW_ENSURE((thr), (bw_ctx), duk__val_len); \
2845 duk_memcpy_unsafe((void *) ((bw_ctx)->p), \
2846 (const void *) DUK_HBUFFER_GET_DATA_PTR((thr)->heap, (val)), \
2848 (bw_ctx)->p += duk__val_len; \
2850#define DUK_BW_WRITE_ENSURE_HBUFFER_FIXED(thr, bw_ctx, val) \
2852 duk_size_t duk__val_len; \
2853 duk__val_len = DUK_HBUFFER_FIXED_GET_SIZE((val)); \
2854 DUK_BW_ENSURE((thr), (bw_ctx), duk__val_len); \
2855 duk_memcpy_unsafe((void *) ((bw_ctx)->p), \
2856 (const void *) DUK_HBUFFER_FIXED_GET_DATA_PTR((thr)->heap, (val)), \
2858 (bw_ctx)->p += duk__val_len; \
2860#define DUK_BW_WRITE_ENSURE_HBUFFER_DYNAMIC(thr, bw_ctx, val) \
2862 duk_size_t duk__val_len; \
2863 duk__val_len = DUK_HBUFFER_DYNAMIC_GET_SIZE((val)); \
2864 DUK_BW_ENSURE((thr), (bw_ctx), duk__val_len); \
2865 duk_memcpy_unsafe((void *) ((bw_ctx)->p), \
2866 (const void *) DUK_HBUFFER_DYNAMIC_GET_DATA_PTR((thr)->heap, (val)), \
2868 (bw_ctx)->p += duk__val_len; \
2871#define DUK_BW_WRITE_ENSURE_SLICE(thr, bw, dst_off, dst_len) duk_bw_write_ensure_slice((thr), (bw), (dst_off), (dst_len))
2872#define DUK_BW_INSERT_ENSURE_BYTES(thr, bw, dst_off, buf, len) duk_bw_insert_ensure_bytes((thr), (bw), (dst_off), (buf), (len))
2873#define DUK_BW_INSERT_ENSURE_SLICE(thr, bw, dst_off, src_off, len) \
2874 duk_bw_insert_ensure_slice((thr), (bw), (dst_off), (src_off), (len))
2875#define DUK_BW_INSERT_ENSURE_AREA(thr, bw, off, len) \
2877 duk_bw_insert_ensure_area((thr), (bw), (off), (len))
2878#define DUK_BW_REMOVE_ENSURE_SLICE(thr, bw, off, len) \
2880 DUK_BW_REMOVE_RAW_SLICE((thr), (bw), (off), (len))
2886#if !defined(DUK_SINGLE_FILE)
2890#if defined(DUK_USE_HEX_FASTPATH)
2897#if defined(DUK_USE_HOBJECT_HASH_PART)
2898#if !defined(DUK_SINGLE_FILE)
2903#if defined(DUK_USE_STRHASH_DENSE)
2917#if !defined(DUK_USE_GET_RANDOM_DOUBLE)
2931 const duk_uint8_t *buf,
2936 const duk_uint8_t *buf,
2974#if defined(DUK_USE_DEBUGGER_SUPPORT)
2989#if defined(DUK_USE_ALLOW_UNDEFINED_BEHAVIOR)
2990#define duk_memcpy(dst, src, len) \
2992 void *duk__dst = (dst); \
2993 const void *duk__src = (src); \
2994 duk_size_t duk__len = (len); \
2995 DUK_ASSERT(duk__dst != NULL || duk__len == 0U); \
2996 DUK_ASSERT(duk__src != NULL || duk__len == 0U); \
2997 (void) DUK_MEMCPY(duk__dst, duk__src, (size_t) duk__len); \
2999#define duk_memcpy_unsafe(dst, src, len) duk_memcpy((dst), (src), (len))
3000#define duk_memmove(dst, src, len) \
3002 void *duk__dst = (dst); \
3003 const void *duk__src = (src); \
3004 duk_size_t duk__len = (len); \
3005 DUK_ASSERT(duk__dst != NULL || duk__len == 0U); \
3006 DUK_ASSERT(duk__src != NULL || duk__len == 0U); \
3007 (void) DUK_MEMMOVE(duk__dst, duk__src, (size_t) duk__len); \
3009#define duk_memmove_unsafe(dst, src, len) duk_memmove((dst), (src), (len))
3010#define duk_memset(dst, val, len) \
3012 void *duk__dst = (dst); \
3013 duk_small_int_t duk__val = (val); \
3014 duk_size_t duk__len = (len); \
3015 DUK_ASSERT(duk__dst != NULL || duk__len == 0U); \
3016 (void) DUK_MEMSET(duk__dst, duk__val, (size_t) duk__len); \
3018#define duk_memset_unsafe(dst, val, len) duk_memset((dst), (val), (len))
3019#define duk_memzero(dst, len) \
3021 void *duk__dst = (dst); \
3022 duk_size_t duk__len = (len); \
3023 DUK_ASSERT(duk__dst != NULL || duk__len == 0U); \
3024 (void) DUK_MEMZERO(duk__dst, (size_t) duk__len); \
3026#define duk_memzero_unsafe(dst, len) duk_memzero((dst), (len))
3028#define duk_memcpy(dst, src, len) \
3030 void *duk__dst = (dst); \
3031 const void *duk__src = (src); \
3032 duk_size_t duk__len = (len); \
3033 DUK_ASSERT(duk__dst != NULL); \
3034 DUK_ASSERT(duk__src != NULL); \
3035 (void) DUK_MEMCPY(duk__dst, duk__src, (size_t) duk__len); \
3037#define duk_memcpy_unsafe(dst, src, len) \
3039 void *duk__dst = (dst); \
3040 const void *duk__src = (src); \
3041 duk_size_t duk__len = (len); \
3042 DUK_ASSERT(duk__dst != NULL || duk__len == 0U); \
3043 DUK_ASSERT(duk__src != NULL || duk__len == 0U); \
3044 if (DUK_LIKELY(duk__len > 0U)) { \
3045 DUK_ASSERT(duk__dst != NULL); \
3046 DUK_ASSERT(duk__src != NULL); \
3047 (void) DUK_MEMCPY(duk__dst, duk__src, (size_t) duk__len); \
3050#define duk_memmove(dst, src, len) \
3052 void *duk__dst = (dst); \
3053 const void *duk__src = (src); \
3054 duk_size_t duk__len = (len); \
3055 DUK_ASSERT(duk__dst != NULL); \
3056 DUK_ASSERT(duk__src != NULL); \
3057 (void) DUK_MEMMOVE(duk__dst, duk__src, (size_t) duk__len); \
3059#define duk_memmove_unsafe(dst, src, len) \
3061 void *duk__dst = (dst); \
3062 const void *duk__src = (src); \
3063 duk_size_t duk__len = (len); \
3064 DUK_ASSERT(duk__dst != NULL || duk__len == 0U); \
3065 DUK_ASSERT(duk__src != NULL || duk__len == 0U); \
3066 if (DUK_LIKELY(duk__len > 0U)) { \
3067 DUK_ASSERT(duk__dst != NULL); \
3068 DUK_ASSERT(duk__src != NULL); \
3069 (void) DUK_MEMMOVE(duk__dst, duk__src, (size_t) duk__len); \
3072#define duk_memset(dst, val, len) \
3074 void *duk__dst = (dst); \
3075 duk_small_int_t duk__val = (val); \
3076 duk_size_t duk__len = (len); \
3077 DUK_ASSERT(duk__dst != NULL); \
3078 (void) DUK_MEMSET(duk__dst, duk__val, (size_t) duk__len); \
3080#define duk_memset_unsafe(dst, val, len) \
3082 void *duk__dst = (dst); \
3083 duk_small_int_t duk__val = (val); \
3084 duk_size_t duk__len = (len); \
3085 DUK_ASSERT(duk__dst != NULL || duk__len == 0U); \
3086 if (DUK_LIKELY(duk__len > 0U)) { \
3087 DUK_ASSERT(duk__dst != NULL); \
3088 (void) DUK_MEMSET(duk__dst, duk__val, (size_t) duk__len); \
3091#define duk_memzero(dst, len) \
3093 void *duk__dst = (dst); \
3094 duk_size_t duk__len = (len); \
3095 DUK_ASSERT(duk__dst != NULL); \
3096 (void) DUK_MEMZERO(duk__dst, (size_t) duk__len); \
3098#define duk_memzero_unsafe(dst, len) \
3100 void *duk__dst = (dst); \
3101 duk_size_t duk__len = (len); \
3102 DUK_ASSERT(duk__dst != NULL || duk__len == 0U); \
3103 if (DUK_LIKELY(duk__len > 0U)) { \
3104 DUK_ASSERT(duk__dst != NULL); \
3105 (void) DUK_MEMZERO(duk__dst, (size_t) duk__len); \
3154#define DUK_IS_POWER_OF_TWO(x) ((x) != 0U && ((x) & ((x) -1U)) == 0U)
3178#if !defined(DUK_ERRMSG_H_INCLUDED)
3179#define DUK_ERRMSG_H_INCLUDED
3182#define DUK_STR_INTERNAL_ERROR "internal error"
3183#define DUK_STR_UNSUPPORTED "unsupported"
3184#define DUK_STR_INVALID_COUNT "invalid count"
3185#define DUK_STR_INVALID_ARGS "invalid args"
3186#define DUK_STR_INVALID_STATE "invalid state"
3187#define DUK_STR_INVALID_INPUT "invalid input"
3188#define DUK_STR_INVALID_LENGTH "invalid length"
3189#define DUK_STR_NOT_CONSTRUCTABLE "not constructable"
3190#define DUK_STR_CONSTRUCT_ONLY "constructor requires 'new'"
3191#define DUK_STR_NOT_CALLABLE "not callable"
3192#define DUK_STR_NOT_EXTENSIBLE "not extensible"
3193#define DUK_STR_NOT_WRITABLE "not writable"
3194#define DUK_STR_NOT_CONFIGURABLE "not configurable"
3195#define DUK_STR_INVALID_CONTEXT "invalid context"
3196#define DUK_STR_INVALID_INDEX "invalid args"
3197#define DUK_STR_PUSH_BEYOND_ALLOC_STACK "cannot push beyond allocated stack"
3198#define DUK_STR_NOT_UNDEFINED "unexpected type"
3199#define DUK_STR_NOT_NULL "unexpected type"
3200#define DUK_STR_NOT_BOOLEAN "unexpected type"
3201#define DUK_STR_NOT_NUMBER "unexpected type"
3202#define DUK_STR_NOT_STRING "unexpected type"
3203#define DUK_STR_NOT_OBJECT "unexpected type"
3204#define DUK_STR_NOT_POINTER "unexpected type"
3205#define DUK_STR_NOT_BUFFER "not buffer"
3206#define DUK_STR_UNEXPECTED_TYPE "unexpected type"
3207#define DUK_STR_NOT_THREAD "unexpected type"
3208#define DUK_STR_NOT_COMPFUNC "unexpected type"
3209#define DUK_STR_NOT_NATFUNC "unexpected type"
3210#define DUK_STR_NOT_C_FUNCTION "unexpected type"
3211#define DUK_STR_NOT_FUNCTION "unexpected type"
3212#define DUK_STR_NOT_REGEXP "unexpected type"
3213#define DUK_STR_TOPRIMITIVE_FAILED "coercion to primitive failed"
3214#define DUK_STR_NUMBER_OUTSIDE_RANGE "number outside range"
3215#define DUK_STR_NOT_OBJECT_COERCIBLE "not object coercible"
3216#define DUK_STR_CANNOT_NUMBER_COERCE_SYMBOL "cannot number coerce Symbol"
3217#define DUK_STR_CANNOT_STRING_COERCE_SYMBOL "cannot string coerce Symbol"
3218#define DUK_STR_STRING_TOO_LONG "string too long"
3219#define DUK_STR_BUFFER_TOO_LONG "buffer too long"
3220#define DUK_STR_ALLOC_FAILED "alloc failed"
3221#define DUK_STR_WRONG_BUFFER_TYPE "wrong buffer type"
3222#define DUK_STR_BASE64_ENCODE_FAILED "base64 encode failed"
3223#define DUK_STR_SOURCE_DECODE_FAILED "source decode failed"
3224#define DUK_STR_UTF8_DECODE_FAILED "utf-8 decode failed"
3225#define DUK_STR_BASE64_DECODE_FAILED "base64 decode failed"
3226#define DUK_STR_HEX_DECODE_FAILED "hex decode failed"
3227#define DUK_STR_INVALID_BYTECODE "invalid bytecode"
3228#define DUK_STR_NO_SOURCECODE "no sourcecode"
3229#define DUK_STR_RESULT_TOO_LONG "result too long"
3230#define DUK_STR_INVALID_CFUNC_RC "invalid C function rc"
3231#define DUK_STR_INVALID_INSTANCEOF_RVAL "invalid instanceof rval"
3232#define DUK_STR_INVALID_INSTANCEOF_RVAL_NOPROTO "instanceof rval has no .prototype"
3235#define DUK_STR_FMT_PTR "%p"
3236#define DUK_STR_FMT_INVALID_JSON "invalid json (at offset %ld)"
3237#define DUK_STR_CYCLIC_INPUT "cyclic input"
3240#define DUK_STR_DEC_RECLIMIT "decode recursion limit"
3241#define DUK_STR_ENC_RECLIMIT "encode recursion limit"
3244#define DUK_STR_INVALID_BASE "invalid base value"
3245#define DUK_STR_STRICT_CALLER_READ "cannot read strict 'caller'"
3246#define DUK_STR_PROXY_REJECTED "proxy rejected"
3247#define DUK_STR_INVALID_ARRAY_LENGTH "invalid array length"
3248#define DUK_STR_SETTER_UNDEFINED "setter undefined"
3249#define DUK_STR_INVALID_DESCRIPTOR "invalid descriptor"
3252#define DUK_STR_PROXY_REVOKED "proxy revoked"
3253#define DUK_STR_INVALID_TRAP_RESULT "invalid trap result"
3258#define DUK_STR_INVALID_ESCAPE "invalid escape"
3259#define DUK_STR_UNTERMINATED_STRING "unterminated string"
3260#define DUK_STR_UNTERMINATED_COMMENT "unterminated comment"
3261#define DUK_STR_UNTERMINATED_REGEXP "unterminated regexp"
3262#define DUK_STR_TOKEN_LIMIT "token limit"
3263#define DUK_STR_REGEXP_SUPPORT_DISABLED "regexp support disabled"
3264#define DUK_STR_INVALID_NUMBER_LITERAL "invalid number literal"
3265#define DUK_STR_INVALID_TOKEN "invalid token"
3268#define DUK_STR_PARSE_ERROR "parse error"
3269#define DUK_STR_DUPLICATE_LABEL "duplicate label"
3270#define DUK_STR_INVALID_LABEL "invalid label"
3271#define DUK_STR_INVALID_ARRAY_LITERAL "invalid array literal"
3272#define DUK_STR_INVALID_OBJECT_LITERAL "invalid object literal"
3273#define DUK_STR_INVALID_VAR_DECLARATION "invalid variable declaration"
3274#define DUK_STR_CANNOT_DELETE_IDENTIFIER "cannot delete identifier"
3275#define DUK_STR_INVALID_EXPRESSION "invalid expression"
3276#define DUK_STR_INVALID_LVALUE "invalid lvalue"
3277#define DUK_STR_INVALID_NEWTARGET "invalid new.target"
3278#define DUK_STR_EXPECTED_IDENTIFIER "expected identifier"
3279#define DUK_STR_EMPTY_EXPR_NOT_ALLOWED "empty expression not allowed"
3280#define DUK_STR_INVALID_FOR "invalid for statement"
3281#define DUK_STR_INVALID_SWITCH "invalid switch statement"
3282#define DUK_STR_INVALID_BREAK_CONT_LABEL "invalid break/continue label"
3283#define DUK_STR_INVALID_RETURN "invalid return"
3284#define DUK_STR_INVALID_TRY "invalid try"
3285#define DUK_STR_INVALID_THROW "invalid throw"
3286#define DUK_STR_WITH_IN_STRICT_MODE "with in strict mode"
3287#define DUK_STR_FUNC_STMT_NOT_ALLOWED "function statement not allowed"
3288#define DUK_STR_UNTERMINATED_STMT "unterminated statement"
3289#define DUK_STR_INVALID_ARG_NAME "invalid argument name"
3290#define DUK_STR_INVALID_FUNC_NAME "invalid function name"
3291#define DUK_STR_INVALID_GETSET_NAME "invalid getter/setter name"
3292#define DUK_STR_FUNC_NAME_REQUIRED "function name required"
3295#define DUK_STR_INVALID_QUANTIFIER "invalid regexp quantifier"
3296#define DUK_STR_INVALID_QUANTIFIER_NO_ATOM "quantifier without preceding atom"
3297#define DUK_STR_INVALID_QUANTIFIER_VALUES "quantifier values invalid (qmin > qmax)"
3298#define DUK_STR_QUANTIFIER_TOO_MANY_COPIES "quantifier requires too many atom copies"
3299#define DUK_STR_UNEXPECTED_CLOSING_PAREN "unexpected closing parenthesis"
3300#define DUK_STR_UNEXPECTED_END_OF_PATTERN "unexpected end of pattern"
3301#define DUK_STR_UNEXPECTED_REGEXP_TOKEN "unexpected token in regexp"
3302#define DUK_STR_INVALID_REGEXP_FLAGS "invalid regexp flags"
3303#define DUK_STR_INVALID_REGEXP_ESCAPE "invalid regexp escape"
3304#define DUK_STR_INVALID_BACKREFS "invalid backreference(s)"
3305#define DUK_STR_INVALID_REGEXP_CHARACTER "invalid regexp character"
3306#define DUK_STR_INVALID_REGEXP_GROUP "invalid regexp group"
3307#define DUK_STR_UNTERMINATED_CHARCLASS "unterminated character class"
3308#define DUK_STR_INVALID_RANGE "invalid range"
3311#define DUK_STR_VALSTACK_LIMIT "valstack limit"
3312#define DUK_STR_CALLSTACK_LIMIT "callstack limit"
3313#define DUK_STR_PROTOTYPE_CHAIN_LIMIT "prototype chain limit"
3314#define DUK_STR_BOUND_CHAIN_LIMIT "function call bound chain limit"
3315#define DUK_STR_NATIVE_STACK_LIMIT "C stack depth limit"
3316#define DUK_STR_COMPILER_RECURSION_LIMIT "compiler recursion limit"
3317#define DUK_STR_BYTECODE_LIMIT "bytecode limit"
3318#define DUK_STR_REG_LIMIT "register limit"
3319#define DUK_STR_TEMP_LIMIT "temp limit"
3320#define DUK_STR_CONST_LIMIT "const limit"
3321#define DUK_STR_FUNC_LIMIT "function limit"
3322#define DUK_STR_REGEXP_COMPILER_RECURSION_LIMIT "regexp compiler recursion limit"
3323#define DUK_STR_REGEXP_EXECUTOR_RECURSION_LIMIT "regexp executor recursion limit"
3324#define DUK_STR_REGEXP_EXECUTOR_STEP_LIMIT "regexp step limit"
3332#if !defined(DUK_JS_BYTECODE_H_INCLUDED)
3333#define DUK_JS_BYTECODE_H_INCLUDED
3413#define DUK_BC_SHIFT_OP 0
3414#define DUK_BC_SHIFT_A 8
3415#define DUK_BC_SHIFT_B 16
3416#define DUK_BC_SHIFT_C 24
3417#define DUK_BC_SHIFT_BC DUK_BC_SHIFT_B
3418#define DUK_BC_SHIFT_ABC DUK_BC_SHIFT_A
3420#define DUK_BC_UNSHIFTED_MASK_OP 0xffUL
3421#define DUK_BC_UNSHIFTED_MASK_A 0xffUL
3422#define DUK_BC_UNSHIFTED_MASK_B 0xffUL
3423#define DUK_BC_UNSHIFTED_MASK_C 0xffUL
3424#define DUK_BC_UNSHIFTED_MASK_BC 0xffffUL
3425#define DUK_BC_UNSHIFTED_MASK_ABC 0xffffffUL
3427#define DUK_BC_SHIFTED_MASK_OP (DUK_BC_UNSHIFTED_MASK_OP << DUK_BC_SHIFT_OP)
3428#define DUK_BC_SHIFTED_MASK_A (DUK_BC_UNSHIFTED_MASK_A << DUK_BC_SHIFT_A)
3429#define DUK_BC_SHIFTED_MASK_B (DUK_BC_UNSHIFTED_MASK_B << DUK_BC_SHIFT_B)
3430#define DUK_BC_SHIFTED_MASK_C (DUK_BC_UNSHIFTED_MASK_C << DUK_BC_SHIFT_C)
3431#define DUK_BC_SHIFTED_MASK_BC (DUK_BC_UNSHIFTED_MASK_BC << DUK_BC_SHIFT_BC)
3432#define DUK_BC_SHIFTED_MASK_ABC (DUK_BC_UNSHIFTED_MASK_ABC << DUK_BC_SHIFT_ABC)
3434#define DUK_DEC_OP(x) ((x) &0xffUL)
3435#define DUK_DEC_A(x) (((x) >> 8) & 0xffUL)
3436#define DUK_DEC_B(x) (((x) >> 16) & 0xffUL)
3437#define DUK_DEC_C(x) (((x) >> 24) & 0xffUL)
3438#define DUK_DEC_BC(x) (((x) >> 16) & 0xffffUL)
3439#define DUK_DEC_ABC(x) (((x) >> 8) & 0xffffffUL)
3441#define DUK_ENC_OP(op) ((duk_instr_t) (op))
3442#define DUK_ENC_OP_ABC(op, abc) ((duk_instr_t) ((((duk_instr_t) (abc)) << 8) | ((duk_instr_t) (op))))
3443#define DUK_ENC_OP_A_BC(op, a, bc) \
3444 ((duk_instr_t) ((((duk_instr_t) (bc)) << 16) | (((duk_instr_t) (a)) << 8) | ((duk_instr_t) (op))))
3445#define DUK_ENC_OP_A_B_C(op, a, b, c) \
3446 ((duk_instr_t) ((((duk_instr_t) (c)) << 24) | (((duk_instr_t) (b)) << 16) | (((duk_instr_t) (a)) << 8) | \
3447 ((duk_instr_t) (op))))
3448#define DUK_ENC_OP_A_B(op, a, b) DUK_ENC_OP_A_B_C((op), (a), (b), 0)
3449#define DUK_ENC_OP_A(op, a) DUK_ENC_OP_A_B_C((op), (a), 0, 0)
3450#define DUK_ENC_OP_BC(op, bc) DUK_ENC_OP_A_BC((op), 0, (bc))
3453#define DUK_BC_NOREGCONST_OP(op) ((op) &0xfc)
3458#define DUK_BC_OP_MIN 0
3459#define DUK_BC_OP_MAX 0xffL
3460#define DUK_BC_A_MIN 0
3461#define DUK_BC_A_MAX 0xffL
3462#define DUK_BC_B_MIN 0
3463#define DUK_BC_B_MAX 0xffL
3464#define DUK_BC_C_MIN 0
3465#define DUK_BC_C_MAX 0xffL
3466#define DUK_BC_BC_MIN 0
3467#define DUK_BC_BC_MAX 0xffffL
3468#define DUK_BC_ABC_MIN 0
3469#define DUK_BC_ABC_MAX 0xffffffL
3472#define DUK_BC_REGCONST_B (0x01UL)
3473#define DUK_BC_REGCONST_C (0x02UL)
3476#define DUK_BC_INCDECP_FLAG_DEC (0x04UL)
3477#define DUK_BC_INCDECP_FLAG_POST (0x08UL)
3480#define DUK_OP_LDREG 0
3481#define DUK_OP_STREG 1
3482#define DUK_OP_JUMP 2
3483#define DUK_OP_LDCONST 3
3484#define DUK_OP_LDINT 4
3485#define DUK_OP_LDINTX 5
3486#define DUK_OP_LDTHIS 6
3487#define DUK_OP_LDUNDEF 7
3488#define DUK_OP_LDNULL 8
3489#define DUK_OP_LDTRUE 9
3490#define DUK_OP_LDFALSE 10
3491#define DUK_OP_GETVAR 11
3492#define DUK_OP_BNOT 12
3493#define DUK_OP_LNOT 13
3494#define DUK_OP_UNM 14
3495#define DUK_OP_UNP 15
3497#define DUK_OP_EQ_RR 16
3498#define DUK_OP_EQ_CR 17
3499#define DUK_OP_EQ_RC 18
3500#define DUK_OP_EQ_CC 19
3501#define DUK_OP_NEQ 20
3502#define DUK_OP_NEQ_RR 20
3503#define DUK_OP_NEQ_CR 21
3504#define DUK_OP_NEQ_RC 22
3505#define DUK_OP_NEQ_CC 23
3506#define DUK_OP_SEQ 24
3507#define DUK_OP_SEQ_RR 24
3508#define DUK_OP_SEQ_CR 25
3509#define DUK_OP_SEQ_RC 26
3510#define DUK_OP_SEQ_CC 27
3511#define DUK_OP_SNEQ 28
3512#define DUK_OP_SNEQ_RR 28
3513#define DUK_OP_SNEQ_CR 29
3514#define DUK_OP_SNEQ_RC 30
3515#define DUK_OP_SNEQ_CC 31
3517#define DUK_OP_GT_RR 32
3518#define DUK_OP_GT_CR 33
3519#define DUK_OP_GT_RC 34
3520#define DUK_OP_GT_CC 35
3522#define DUK_OP_GE_RR 36
3523#define DUK_OP_GE_CR 37
3524#define DUK_OP_GE_RC 38
3525#define DUK_OP_GE_CC 39
3527#define DUK_OP_LT_RR 40
3528#define DUK_OP_LT_CR 41
3529#define DUK_OP_LT_RC 42
3530#define DUK_OP_LT_CC 43
3532#define DUK_OP_LE_RR 44
3533#define DUK_OP_LE_CR 45
3534#define DUK_OP_LE_RC 46
3535#define DUK_OP_LE_CC 47
3536#define DUK_OP_IFTRUE 48
3537#define DUK_OP_IFTRUE_R 48
3538#define DUK_OP_IFTRUE_C 49
3539#define DUK_OP_IFFALSE 50
3540#define DUK_OP_IFFALSE_R 50
3541#define DUK_OP_IFFALSE_C 51
3542#define DUK_OP_ADD 52
3543#define DUK_OP_ADD_RR 52
3544#define DUK_OP_ADD_CR 53
3545#define DUK_OP_ADD_RC 54
3546#define DUK_OP_ADD_CC 55
3547#define DUK_OP_SUB 56
3548#define DUK_OP_SUB_RR 56
3549#define DUK_OP_SUB_CR 57
3550#define DUK_OP_SUB_RC 58
3551#define DUK_OP_SUB_CC 59
3552#define DUK_OP_MUL 60
3553#define DUK_OP_MUL_RR 60
3554#define DUK_OP_MUL_CR 61
3555#define DUK_OP_MUL_RC 62
3556#define DUK_OP_MUL_CC 63
3557#define DUK_OP_DIV 64
3558#define DUK_OP_DIV_RR 64
3559#define DUK_OP_DIV_CR 65
3560#define DUK_OP_DIV_RC 66
3561#define DUK_OP_DIV_CC 67
3562#define DUK_OP_MOD 68
3563#define DUK_OP_MOD_RR 68
3564#define DUK_OP_MOD_CR 69
3565#define DUK_OP_MOD_RC 70
3566#define DUK_OP_MOD_CC 71
3567#define DUK_OP_EXP 72
3568#define DUK_OP_EXP_RR 72
3569#define DUK_OP_EXP_CR 73
3570#define DUK_OP_EXP_RC 74
3571#define DUK_OP_EXP_CC 75
3572#define DUK_OP_BAND 76
3573#define DUK_OP_BAND_RR 76
3574#define DUK_OP_BAND_CR 77
3575#define DUK_OP_BAND_RC 78
3576#define DUK_OP_BAND_CC 79
3577#define DUK_OP_BOR 80
3578#define DUK_OP_BOR_RR 80
3579#define DUK_OP_BOR_CR 81
3580#define DUK_OP_BOR_RC 82
3581#define DUK_OP_BOR_CC 83
3582#define DUK_OP_BXOR 84
3583#define DUK_OP_BXOR_RR 84
3584#define DUK_OP_BXOR_CR 85
3585#define DUK_OP_BXOR_RC 86
3586#define DUK_OP_BXOR_CC 87
3587#define DUK_OP_BASL 88
3588#define DUK_OP_BASL_RR 88
3589#define DUK_OP_BASL_CR 89
3590#define DUK_OP_BASL_RC 90
3591#define DUK_OP_BASL_CC 91
3592#define DUK_OP_BLSR 92
3593#define DUK_OP_BLSR_RR 92
3594#define DUK_OP_BLSR_CR 93
3595#define DUK_OP_BLSR_RC 94
3596#define DUK_OP_BLSR_CC 95
3597#define DUK_OP_BASR 96
3598#define DUK_OP_BASR_RR 96
3599#define DUK_OP_BASR_CR 97
3600#define DUK_OP_BASR_RC 98
3601#define DUK_OP_BASR_CC 99
3602#define DUK_OP_INSTOF 100
3603#define DUK_OP_INSTOF_RR 100
3604#define DUK_OP_INSTOF_CR 101
3605#define DUK_OP_INSTOF_RC 102
3606#define DUK_OP_INSTOF_CC 103
3607#define DUK_OP_IN 104
3608#define DUK_OP_IN_RR 104
3609#define DUK_OP_IN_CR 105
3610#define DUK_OP_IN_RC 106
3611#define DUK_OP_IN_CC 107
3612#define DUK_OP_GETPROP 108
3613#define DUK_OP_GETPROP_RR 108
3614#define DUK_OP_GETPROP_CR 109
3615#define DUK_OP_GETPROP_RC 110
3616#define DUK_OP_GETPROP_CC 111
3617#define DUK_OP_PUTPROP 112
3618#define DUK_OP_PUTPROP_RR 112
3619#define DUK_OP_PUTPROP_CR 113
3620#define DUK_OP_PUTPROP_RC 114
3621#define DUK_OP_PUTPROP_CC 115
3622#define DUK_OP_DELPROP 116
3623#define DUK_OP_DELPROP_RR 116
3624#define DUK_OP_DELPROP_CR_UNUSED 117
3625#define DUK_OP_DELPROP_RC 118
3626#define DUK_OP_DELPROP_CC_UNUSED 119
3627#define DUK_OP_PREINCR 120
3628#define DUK_OP_PREDECR 121
3629#define DUK_OP_POSTINCR 122
3630#define DUK_OP_POSTDECR 123
3631#define DUK_OP_PREINCV 124
3632#define DUK_OP_PREDECV 125
3633#define DUK_OP_POSTINCV 126
3634#define DUK_OP_POSTDECV 127
3635#define DUK_OP_PREINCP 128
3636#define DUK_OP_PREINCP_RR 128
3637#define DUK_OP_PREINCP_CR 129
3638#define DUK_OP_PREINCP_RC 130
3639#define DUK_OP_PREINCP_CC 131
3640#define DUK_OP_PREDECP 132
3641#define DUK_OP_PREDECP_RR 132
3642#define DUK_OP_PREDECP_CR 133
3643#define DUK_OP_PREDECP_RC 134
3644#define DUK_OP_PREDECP_CC 135
3645#define DUK_OP_POSTINCP 136
3646#define DUK_OP_POSTINCP_RR 136
3647#define DUK_OP_POSTINCP_CR 137
3648#define DUK_OP_POSTINCP_RC 138
3649#define DUK_OP_POSTINCP_CC 139
3650#define DUK_OP_POSTDECP 140
3651#define DUK_OP_POSTDECP_RR 140
3652#define DUK_OP_POSTDECP_CR 141
3653#define DUK_OP_POSTDECP_RC 142
3654#define DUK_OP_POSTDECP_CC 143
3655#define DUK_OP_DECLVAR 144
3656#define DUK_OP_DECLVAR_RR 144
3657#define DUK_OP_DECLVAR_CR 145
3658#define DUK_OP_DECLVAR_RC 146
3659#define DUK_OP_DECLVAR_CC 147
3660#define DUK_OP_REGEXP 148
3661#define DUK_OP_REGEXP_RR 148
3662#define DUK_OP_REGEXP_CR 149
3663#define DUK_OP_REGEXP_RC 150
3664#define DUK_OP_REGEXP_CC 151
3665#define DUK_OP_CLOSURE 152
3666#define DUK_OP_TYPEOF 153
3667#define DUK_OP_TYPEOFID 154
3668#define DUK_OP_PUTVAR 155
3669#define DUK_OP_DELVAR 156
3670#define DUK_OP_RETREG 157
3671#define DUK_OP_RETUNDEF 158
3672#define DUK_OP_RETCONST 159
3673#define DUK_OP_RETCONSTN 160
3674#define DUK_OP_LABEL 161
3675#define DUK_OP_ENDLABEL 162
3676#define DUK_OP_BREAK 163
3677#define DUK_OP_CONTINUE 164
3678#define DUK_OP_TRYCATCH 165
3679#define DUK_OP_ENDTRY 166
3680#define DUK_OP_ENDCATCH 167
3681#define DUK_OP_ENDFIN 168
3682#define DUK_OP_THROW 169
3683#define DUK_OP_INVLHS 170
3684#define DUK_OP_CSREG 171
3685#define DUK_OP_CSVAR 172
3686#define DUK_OP_CSVAR_RR 172
3687#define DUK_OP_CSVAR_CR 173
3688#define DUK_OP_CSVAR_RC 174
3689#define DUK_OP_CSVAR_CC 175
3690#define DUK_OP_CALL0 176
3691#define DUK_OP_CALL1 177
3692#define DUK_OP_CALL2 178
3693#define DUK_OP_CALL3 179
3694#define DUK_OP_CALL4 180
3695#define DUK_OP_CALL5 181
3696#define DUK_OP_CALL6 182
3697#define DUK_OP_CALL7 183
3698#define DUK_OP_CALL8 184
3699#define DUK_OP_CALL9 185
3700#define DUK_OP_CALL10 186
3701#define DUK_OP_CALL11 187
3702#define DUK_OP_CALL12 188
3703#define DUK_OP_CALL13 189
3704#define DUK_OP_CALL14 190
3705#define DUK_OP_CALL15 191
3706#define DUK_OP_NEWOBJ 192
3707#define DUK_OP_NEWARR 193
3708#define DUK_OP_MPUTOBJ 194
3709#define DUK_OP_MPUTOBJI 195
3710#define DUK_OP_INITSET 196
3711#define DUK_OP_INITGET 197
3712#define DUK_OP_MPUTARR 198
3713#define DUK_OP_MPUTARRI 199
3714#define DUK_OP_SETALEN 200
3715#define DUK_OP_INITENUM 201
3716#define DUK_OP_NEXTENUM 202
3717#define DUK_OP_NEWTARGET 203
3718#define DUK_OP_DEBUGGER 204
3719#define DUK_OP_NOP 205
3720#define DUK_OP_INVALID 206
3721#define DUK_OP_UNUSED207 207
3722#define DUK_OP_GETPROPC 208
3723#define DUK_OP_GETPROPC_RR 208
3724#define DUK_OP_GETPROPC_CR 209
3725#define DUK_OP_GETPROPC_RC 210
3726#define DUK_OP_GETPROPC_CC 211
3727#define DUK_OP_UNUSED212 212
3728#define DUK_OP_UNUSED213 213
3729#define DUK_OP_UNUSED214 214
3730#define DUK_OP_UNUSED215 215
3731#define DUK_OP_UNUSED216 216
3732#define DUK_OP_UNUSED217 217
3733#define DUK_OP_UNUSED218 218
3734#define DUK_OP_UNUSED219 219
3735#define DUK_OP_UNUSED220 220
3736#define DUK_OP_UNUSED221 221
3737#define DUK_OP_UNUSED222 222
3738#define DUK_OP_UNUSED223 223
3739#define DUK_OP_UNUSED224 224
3740#define DUK_OP_UNUSED225 225
3741#define DUK_OP_UNUSED226 226
3742#define DUK_OP_UNUSED227 227
3743#define DUK_OP_UNUSED228 228
3744#define DUK_OP_UNUSED229 229
3745#define DUK_OP_UNUSED230 230
3746#define DUK_OP_UNUSED231 231
3747#define DUK_OP_UNUSED232 232
3748#define DUK_OP_UNUSED233 233
3749#define DUK_OP_UNUSED234 234
3750#define DUK_OP_UNUSED235 235
3751#define DUK_OP_UNUSED236 236
3752#define DUK_OP_UNUSED237 237
3753#define DUK_OP_UNUSED238 238
3754#define DUK_OP_UNUSED239 239
3755#define DUK_OP_UNUSED240 240
3756#define DUK_OP_UNUSED241 241
3757#define DUK_OP_UNUSED242 242
3758#define DUK_OP_UNUSED243 243
3759#define DUK_OP_UNUSED244 244
3760#define DUK_OP_UNUSED245 245
3761#define DUK_OP_UNUSED246 246
3762#define DUK_OP_UNUSED247 247
3763#define DUK_OP_UNUSED248 248
3764#define DUK_OP_UNUSED249 249
3765#define DUK_OP_UNUSED250 250
3766#define DUK_OP_UNUSED251 251
3767#define DUK_OP_UNUSED252 252
3768#define DUK_OP_UNUSED253 253
3769#define DUK_OP_UNUSED254 254
3770#define DUK_OP_UNUSED255 255
3771#define DUK_OP_NONE 256
3777#define DUK_BC_TRYCATCH_FLAG_HAVE_CATCH (1U << 0)
3778#define DUK_BC_TRYCATCH_FLAG_HAVE_FINALLY (1U << 1)
3779#define DUK_BC_TRYCATCH_FLAG_CATCH_BINDING (1U << 2)
3780#define DUK_BC_TRYCATCH_FLAG_WITH_BINDING (1U << 3)
3785#define DUK_BC_DECLVAR_FLAG_FUNC_DECL (1U << 4)
3790#define DUK_BC_CALL_FLAG_TAILCALL (1U << 0)
3791#define DUK_BC_CALL_FLAG_CONSTRUCT (1U << 1)
3792#define DUK_BC_CALL_FLAG_CALLED_AS_EVAL (1U << 2)
3793#define DUK_BC_CALL_FLAG_INDIRECT (1U << 3)
3796#define DUK_BC_LDINT_BIAS (1L << 15)
3797#define DUK_BC_LDINTX_SHIFT 16
3798#define DUK_BC_JUMP_BIAS (1L << 23)
3806#if !defined(DUK_LEXER_H_INCLUDED)
3807#define DUK_LEXER_H_INCLUDED
3830#define DUK_LEXER_INITCTX(ctx) duk_lexer_initctx((ctx))
3832#define DUK_LEXER_SETPOINT(ctx, pt) duk_lexer_setpoint((ctx), (pt))
3834#define DUK_LEXER_GETPOINT(ctx, pt) duk_lexer_getpoint((ctx), (pt))
3837#define DUK_LEXER_WINDOW_SIZE 6
3838#if defined(DUK_USE_LEXER_SLIDING_WINDOW)
3839#define DUK_LEXER_BUFFER_SIZE 64
3842#define DUK_TOK_MINVAL 0
3845#define DUK_TOK_EOF 0
3848#define DUK_TOK_IDENTIFIER 1
3851#define DUK_TOK_START_RESERVED 2
3852#define DUK_TOK_BREAK 2
3853#define DUK_TOK_CASE 3
3854#define DUK_TOK_CATCH 4
3855#define DUK_TOK_CONTINUE 5
3856#define DUK_TOK_DEBUGGER 6
3857#define DUK_TOK_DEFAULT 7
3858#define DUK_TOK_DELETE 8
3860#define DUK_TOK_ELSE 10
3861#define DUK_TOK_FINALLY 11
3862#define DUK_TOK_FOR 12
3863#define DUK_TOK_FUNCTION 13
3864#define DUK_TOK_IF 14
3865#define DUK_TOK_IN 15
3866#define DUK_TOK_INSTANCEOF 16
3867#define DUK_TOK_NEW 17
3868#define DUK_TOK_RETURN 18
3869#define DUK_TOK_SWITCH 19
3870#define DUK_TOK_THIS 20
3871#define DUK_TOK_THROW 21
3872#define DUK_TOK_TRY 22
3873#define DUK_TOK_TYPEOF 23
3874#define DUK_TOK_VAR 24
3875#define DUK_TOK_CONST 25
3876#define DUK_TOK_VOID 26
3877#define DUK_TOK_WHILE 27
3878#define DUK_TOK_WITH 28
3881#define DUK_TOK_CLASS 29
3882#define DUK_TOK_ENUM 30
3883#define DUK_TOK_EXPORT 31
3884#define DUK_TOK_EXTENDS 32
3885#define DUK_TOK_IMPORT 33
3886#define DUK_TOK_SUPER 34
3891#define DUK_TOK_NULL 35
3892#define DUK_TOK_TRUE 36
3893#define DUK_TOK_FALSE 37
3896#define DUK_TOK_START_STRICT_RESERVED 38
3897#define DUK_TOK_IMPLEMENTS 38
3898#define DUK_TOK_INTERFACE 39
3899#define DUK_TOK_LET 40
3900#define DUK_TOK_PACKAGE 41
3901#define DUK_TOK_PRIVATE 42
3902#define DUK_TOK_PROTECTED 43
3903#define DUK_TOK_PUBLIC 44
3904#define DUK_TOK_STATIC 45
3905#define DUK_TOK_YIELD 46
3907#define DUK_TOK_END_RESERVED 47
3912#define DUK_TOK_GET 47
3913#define DUK_TOK_SET 48
3916#define DUK_TOK_LCURLY 49
3917#define DUK_TOK_RCURLY 50
3918#define DUK_TOK_LBRACKET 51
3919#define DUK_TOK_RBRACKET 52
3920#define DUK_TOK_LPAREN 53
3921#define DUK_TOK_RPAREN 54
3922#define DUK_TOK_PERIOD 55
3923#define DUK_TOK_SEMICOLON 56
3924#define DUK_TOK_COMMA 57
3925#define DUK_TOK_LT 58
3926#define DUK_TOK_GT 59
3927#define DUK_TOK_LE 60
3928#define DUK_TOK_GE 61
3929#define DUK_TOK_EQ 62
3930#define DUK_TOK_NEQ 63
3931#define DUK_TOK_SEQ 64
3932#define DUK_TOK_SNEQ 65
3933#define DUK_TOK_ADD 66
3934#define DUK_TOK_SUB 67
3935#define DUK_TOK_MUL 68
3936#define DUK_TOK_DIV 69
3937#define DUK_TOK_MOD 70
3938#define DUK_TOK_EXP 71
3939#define DUK_TOK_INCREMENT 72
3940#define DUK_TOK_DECREMENT 73
3941#define DUK_TOK_ALSHIFT 74
3942#define DUK_TOK_ARSHIFT 75
3943#define DUK_TOK_RSHIFT 76
3944#define DUK_TOK_BAND 77
3945#define DUK_TOK_BOR 78
3946#define DUK_TOK_BXOR 79
3947#define DUK_TOK_LNOT 80
3948#define DUK_TOK_BNOT 81
3949#define DUK_TOK_LAND 82
3950#define DUK_TOK_LOR 83
3951#define DUK_TOK_QUESTION 84
3952#define DUK_TOK_COLON 85
3953#define DUK_TOK_EQUALSIGN 86
3954#define DUK_TOK_ADD_EQ 87
3955#define DUK_TOK_SUB_EQ 88
3956#define DUK_TOK_MUL_EQ 89
3957#define DUK_TOK_DIV_EQ 90
3958#define DUK_TOK_MOD_EQ 91
3959#define DUK_TOK_EXP_EQ 92
3960#define DUK_TOK_ALSHIFT_EQ 93
3961#define DUK_TOK_ARSHIFT_EQ 94
3962#define DUK_TOK_RSHIFT_EQ 95
3963#define DUK_TOK_BAND_EQ 96
3964#define DUK_TOK_BOR_EQ 97
3965#define DUK_TOK_BXOR_EQ 98
3970#define DUK_TOK_NUMBER 99
3971#define DUK_TOK_STRING 100
3972#define DUK_TOK_REGEXP 101
3974#define DUK_TOK_MAXVAL 101
3976#define DUK_TOK_INVALID DUK_SMALL_UINT_MAX
3979#define DUK_STRIDX_TO_TOK(x) ((x) -DUK_STRIDX_START_RESERVED + DUK_TOK_START_RESERVED)
3982#if (DUK_TOK_MAXVAL > 255)
3983#error DUK_TOK_MAXVAL too large, code assumes it fits into 8 bits
3987#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_BREAK) != DUK_TOK_BREAK)
3988#error mismatch in token defines
3990#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_CASE) != DUK_TOK_CASE)
3991#error mismatch in token defines
3993#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_CATCH) != DUK_TOK_CATCH)
3994#error mismatch in token defines
3996#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_CONTINUE) != DUK_TOK_CONTINUE)
3997#error mismatch in token defines
3999#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_DEBUGGER) != DUK_TOK_DEBUGGER)
4000#error mismatch in token defines
4002#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_DEFAULT) != DUK_TOK_DEFAULT)
4003#error mismatch in token defines
4005#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_DELETE) != DUK_TOK_DELETE)
4006#error mismatch in token defines
4008#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_DO) != DUK_TOK_DO)
4009#error mismatch in token defines
4011#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_ELSE) != DUK_TOK_ELSE)
4012#error mismatch in token defines
4014#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_FINALLY) != DUK_TOK_FINALLY)
4015#error mismatch in token defines
4017#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_FOR) != DUK_TOK_FOR)
4018#error mismatch in token defines
4020#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_LC_FUNCTION) != DUK_TOK_FUNCTION)
4021#error mismatch in token defines
4023#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_IF) != DUK_TOK_IF)
4024#error mismatch in token defines
4026#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_IN) != DUK_TOK_IN)
4027#error mismatch in token defines
4029#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_INSTANCEOF) != DUK_TOK_INSTANCEOF)
4030#error mismatch in token defines
4032#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_NEW) != DUK_TOK_NEW)
4033#error mismatch in token defines
4035#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_RETURN) != DUK_TOK_RETURN)
4036#error mismatch in token defines
4038#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_SWITCH) != DUK_TOK_SWITCH)
4039#error mismatch in token defines
4041#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_THIS) != DUK_TOK_THIS)
4042#error mismatch in token defines
4044#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_THROW) != DUK_TOK_THROW)
4045#error mismatch in token defines
4047#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_TRY) != DUK_TOK_TRY)
4048#error mismatch in token defines
4050#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_TYPEOF) != DUK_TOK_TYPEOF)
4051#error mismatch in token defines
4053#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_VAR) != DUK_TOK_VAR)
4054#error mismatch in token defines
4056#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_VOID) != DUK_TOK_VOID)
4057#error mismatch in token defines
4059#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_WHILE) != DUK_TOK_WHILE)
4060#error mismatch in token defines
4062#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_WITH) != DUK_TOK_WITH)
4063#error mismatch in token defines
4065#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_CLASS) != DUK_TOK_CLASS)
4066#error mismatch in token defines
4068#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_CONST) != DUK_TOK_CONST)
4069#error mismatch in token defines
4071#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_ENUM) != DUK_TOK_ENUM)
4072#error mismatch in token defines
4074#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_EXPORT) != DUK_TOK_EXPORT)
4075#error mismatch in token defines
4077#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_EXTENDS) != DUK_TOK_EXTENDS)
4078#error mismatch in token defines
4080#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_IMPORT) != DUK_TOK_IMPORT)
4081#error mismatch in token defines
4083#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_SUPER) != DUK_TOK_SUPER)
4084#error mismatch in token defines
4086#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_LC_NULL) != DUK_TOK_NULL)
4087#error mismatch in token defines
4089#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_TRUE) != DUK_TOK_TRUE)
4090#error mismatch in token defines
4092#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_FALSE) != DUK_TOK_FALSE)
4093#error mismatch in token defines
4095#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_IMPLEMENTS) != DUK_TOK_IMPLEMENTS)
4096#error mismatch in token defines
4098#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_INTERFACE) != DUK_TOK_INTERFACE)
4099#error mismatch in token defines
4101#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_LET) != DUK_TOK_LET)
4102#error mismatch in token defines
4104#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_PACKAGE) != DUK_TOK_PACKAGE)
4105#error mismatch in token defines
4107#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_PRIVATE) != DUK_TOK_PRIVATE)
4108#error mismatch in token defines
4110#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_PROTECTED) != DUK_TOK_PROTECTED)
4111#error mismatch in token defines
4113#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_PUBLIC) != DUK_TOK_PUBLIC)
4114#error mismatch in token defines
4116#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_STATIC) != DUK_TOK_STATIC)
4117#error mismatch in token defines
4119#if (DUK_STRIDX_TO_TOK(DUK_STRIDX_YIELD) != DUK_TOK_YIELD)
4120#error mismatch in token defines
4124#define DUK_RETOK_EOF 0
4125#define DUK_RETOK_DISJUNCTION 1
4126#define DUK_RETOK_QUANTIFIER 2
4127#define DUK_RETOK_ASSERT_START 3
4128#define DUK_RETOK_ASSERT_END 4
4129#define DUK_RETOK_ASSERT_WORD_BOUNDARY 5
4130#define DUK_RETOK_ASSERT_NOT_WORD_BOUNDARY 6
4131#define DUK_RETOK_ASSERT_START_POS_LOOKAHEAD 7
4132#define DUK_RETOK_ASSERT_START_NEG_LOOKAHEAD 8
4133#define DUK_RETOK_ATOM_PERIOD 9
4134#define DUK_RETOK_ATOM_CHAR 10
4135#define DUK_RETOK_ATOM_DIGIT 11
4136#define DUK_RETOK_ATOM_NOT_DIGIT 12
4137#define DUK_RETOK_ATOM_WHITE 13
4138#define DUK_RETOK_ATOM_NOT_WHITE 14
4139#define DUK_RETOK_ATOM_WORD_CHAR 15
4140#define DUK_RETOK_ATOM_NOT_WORD_CHAR 16
4141#define DUK_RETOK_ATOM_BACKREFERENCE 17
4142#define DUK_RETOK_ATOM_START_CAPTURE_GROUP 18
4143#define DUK_RETOK_ATOM_START_NONCAPTURE_GROUP 19
4144#define DUK_RETOK_ATOM_START_CHARCLASS 20
4145#define DUK_RETOK_ATOM_START_CHARCLASS_INVERTED 21
4146#define DUK_RETOK_ATOM_END_GROUP 22
4149#define DUK_LEXER_TEMP_BUF_LIMIT 256
4168#define DUK_RE_QUANTIFIER_INFINITE ((duk_uint32_t) 0xffffffffUL)
4194#if defined(DUK_USE_LEXER_SLIDING_WINDOW)
4231#if defined(DUK_USE_REGEXP_SUPPORT)
4242#if !defined(DUK_JS_COMPILER_H_INCLUDED)
4243#define DUK_JS_COMPILER_H_INCLUDED
4246#define DUK_COMPILER_TOKEN_LIMIT 100000000L
4249#define DUK_COMPILER_PEEPHOLE_MAXITER 3
4252#define DUK_COMPILER_MAX_BYTECODE_LENGTH (256L * 1024L * 1024L)
4262#define DUK_IVAL_NONE 0
4263#define DUK_IVAL_PLAIN 1
4264#define DUK_IVAL_ARITH 2
4265#define DUK_IVAL_PROP 3
4266#define DUK_IVAL_VAR 4
4268#define DUK_ISPEC_NONE 0
4269#define DUK_ISPEC_VALUE 1
4270#define DUK_ISPEC_REGCONST 2
4276#define DUK_REGCONST_CONST_MARKER DUK_INT32_MIN
4312#if defined(DUK_USE_PC2LINE)
4321#define DUK_LABEL_FLAG_ALLOW_BREAK (1U << 0)
4322#define DUK_LABEL_FLAG_ALLOW_CONTINUE (1U << 1)
4324#define DUK_DECL_TYPE_VAR 0
4325#define DUK_DECL_TYPE_FUNC 1
4405#if defined(DUK_USE_DEBUGGER_SUPPORT)
4465 const duk_uint8_t *src_buffer,
4475#if !defined(DUK_REGEXP_H_INCLUDED)
4476#define DUK_REGEXP_H_INCLUDED
4479#define DUK_RE_MAX_ATOM_COPIES 1000
4482#define DUK_RE_COMPILE_TOKEN_LIMIT 100000000L
4485#define DUK_RE_EXECUTE_STEPS_LIMIT 1000000000L
4488#define DUK_REOP_MATCH 1
4489#define DUK_REOP_CHAR 2
4490#define DUK_REOP_PERIOD 3
4491#define DUK_REOP_RANGES 4
4492#define DUK_REOP_INVRANGES 5
4493#define DUK_REOP_JUMP 6
4494#define DUK_REOP_SPLIT1 7
4495#define DUK_REOP_SPLIT2 8
4496#define DUK_REOP_SQMINIMAL 9
4497#define DUK_REOP_SQGREEDY 10
4498#define DUK_REOP_SAVE 11
4499#define DUK_REOP_WIPERANGE 12
4500#define DUK_REOP_LOOKPOS 13
4501#define DUK_REOP_LOOKNEG 14
4502#define DUK_REOP_BACKREFERENCE 15
4503#define DUK_REOP_ASSERT_START 16
4504#define DUK_REOP_ASSERT_END 17
4505#define DUK_REOP_ASSERT_WORD_BOUNDARY 18
4506#define DUK_REOP_ASSERT_NOT_WORD_BOUNDARY 19
4509#define DUK_RE_FLAG_GLOBAL (1U << 0)
4510#define DUK_RE_FLAG_IGNORE_CASE (1U << 1)
4511#define DUK_RE_FLAG_MULTILINE (1U << 2)
4547#if defined(DUK_USE_REGEXP_SUPPORT)
4561#if !defined(DUK_HEAPHDR_H_INCLUDED)
4562#define DUK_HEAPHDR_H_INCLUDED
4593#if defined(DUK_USE_REFERENCE_COUNTING)
4594#if defined(DUK_USE_ASSERTIONS)
4600#if defined(DUK_USE_REFCOUNT16)
4602#elif defined(DUK_USE_REFCOUNT32)
4609#if defined(DUK_USE_HEAPPTR16)
4610 duk_uint16_t h_next16;
4615#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
4617#if defined(DUK_USE_HEAPPTR16)
4618 duk_uint16_t h_prev16;
4632#if defined(DUK_USE_HEAPPTR16)
4633 duk_uint16_t h_extra16;
4646#if defined(DUK_USE_REFERENCE_COUNTING)
4647#if defined(DUK_USE_ASSERTIONS)
4653#if defined(DUK_USE_REFCOUNT16)
4655 duk_uint16_t h_strextra16;
4656#elif defined(DUK_USE_REFCOUNT32)
4662 duk_uint16_t h_strextra16;
4669#define DUK_HEAPHDR_FLAGS_TYPE_MASK 0x00000003UL
4670#define DUK_HEAPHDR_FLAGS_FLAG_MASK (~DUK_HEAPHDR_FLAGS_TYPE_MASK)
4673#define DUK_HEAPHDR_FLAGS_HEAP_START 2
4674#define DUK_HEAPHDR_FLAGS_USER_START 7
4676#define DUK_HEAPHDR_HEAP_FLAG_NUMBER(n) (DUK_HEAPHDR_FLAGS_HEAP_START + (n))
4677#define DUK_HEAPHDR_USER_FLAG_NUMBER(n) (DUK_HEAPHDR_FLAGS_USER_START + (n))
4678#define DUK_HEAPHDR_HEAP_FLAG(n) (1UL << (DUK_HEAPHDR_FLAGS_HEAP_START + (n)))
4679#define DUK_HEAPHDR_USER_FLAG(n) (1UL << (DUK_HEAPHDR_FLAGS_USER_START + (n)))
4681#define DUK_HEAPHDR_FLAG_REACHABLE DUK_HEAPHDR_HEAP_FLAG(0)
4682#define DUK_HEAPHDR_FLAG_TEMPROOT DUK_HEAPHDR_HEAP_FLAG(1)
4683#define DUK_HEAPHDR_FLAG_FINALIZABLE DUK_HEAPHDR_HEAP_FLAG(2)
4684#define DUK_HEAPHDR_FLAG_FINALIZED DUK_HEAPHDR_HEAP_FLAG(3)
4685#define DUK_HEAPHDR_FLAG_READONLY DUK_HEAPHDR_HEAP_FLAG(4)
4687#define DUK_HTYPE_MIN 0
4688#define DUK_HTYPE_STRING 0
4689#define DUK_HTYPE_OBJECT 1
4690#define DUK_HTYPE_BUFFER 2
4691#define DUK_HTYPE_MAX 2
4693#if defined(DUK_USE_HEAPPTR16)
4694#define DUK_HEAPHDR_GET_NEXT(heap, h) ((duk_heaphdr *) DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (h)->h_next16))
4695#define DUK_HEAPHDR_SET_NEXT(heap, h, val) \
4697 (h)->h_next16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) val); \
4700#define DUK_HEAPHDR_GET_NEXT(heap, h) ((h)->h_next)
4701#define DUK_HEAPHDR_SET_NEXT(heap, h, val) \
4703 (h)->h_next = (val); \
4707#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
4708#if defined(DUK_USE_HEAPPTR16)
4709#define DUK_HEAPHDR_GET_PREV(heap, h) ((duk_heaphdr *) DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (h)->h_prev16))
4710#define DUK_HEAPHDR_SET_PREV(heap, h, val) \
4712 (h)->h_prev16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (val)); \
4715#define DUK_HEAPHDR_GET_PREV(heap, h) ((h)->h_prev)
4716#define DUK_HEAPHDR_SET_PREV(heap, h, val) \
4718 (h)->h_prev = (val); \
4723#if defined(DUK_USE_REFERENCE_COUNTING)
4724#define DUK_HEAPHDR_GET_REFCOUNT(h) ((h)->h_refcount)
4725#define DUK_HEAPHDR_SET_REFCOUNT(h, val) \
4727 (h)->h_refcount = (val); \
4728 DUK_ASSERT((h)->h_refcount == (val)); \
4730#define DUK_HEAPHDR_PREINC_REFCOUNT(h) (++(h)->h_refcount)
4731#define DUK_HEAPHDR_PREDEC_REFCOUNT(h) (--(h)->h_refcount)
4741#define DUK_HEAPHDR_GET_FLAGS_RAW(h) ((h)->h_flags)
4742#define DUK_HEAPHDR_SET_FLAGS_RAW(h, val) \
4744 (h)->h_flags = (val); \
4747#define DUK_HEAPHDR_GET_FLAGS(h) ((h)->h_flags & DUK_HEAPHDR_FLAGS_FLAG_MASK)
4748#define DUK_HEAPHDR_SET_FLAGS(h, val) \
4750 (h)->h_flags = ((h)->h_flags & ~(DUK_HEAPHDR_FLAGS_FLAG_MASK)) | (val); \
4752#define DUK_HEAPHDR_GET_TYPE(h) ((h)->h_flags & DUK_HEAPHDR_FLAGS_TYPE_MASK)
4753#define DUK_HEAPHDR_SET_TYPE(h, val) \
4755 (h)->h_flags = ((h)->h_flags & ~(DUK_HEAPHDR_FLAGS_TYPE_MASK)) | (val); \
4761#define DUK_HEAPHDR_HTYPE_VALID(h) (DUK_HEAPHDR_GET_TYPE((h)) <= DUK_HTYPE_MAX)
4763#define DUK_HEAPHDR_SET_TYPE_AND_FLAGS(h, tval, fval) \
4765 (h)->h_flags = ((tval) &DUK_HEAPHDR_FLAGS_TYPE_MASK) | ((fval) &DUK_HEAPHDR_FLAGS_FLAG_MASK); \
4768#define DUK_HEAPHDR_SET_FLAG_BITS(h, bits) \
4770 DUK_ASSERT(((bits) & ~(DUK_HEAPHDR_FLAGS_FLAG_MASK)) == 0); \
4771 (h)->h_flags |= (bits); \
4774#define DUK_HEAPHDR_CLEAR_FLAG_BITS(h, bits) \
4776 DUK_ASSERT(((bits) & ~(DUK_HEAPHDR_FLAGS_FLAG_MASK)) == 0); \
4777 (h)->h_flags &= ~((bits)); \
4780#define DUK_HEAPHDR_CHECK_FLAG_BITS(h, bits) (((h)->h_flags & (bits)) != 0)
4782#define DUK_HEAPHDR_SET_REACHABLE(h) DUK_HEAPHDR_SET_FLAG_BITS((h), DUK_HEAPHDR_FLAG_REACHABLE)
4783#define DUK_HEAPHDR_CLEAR_REACHABLE(h) DUK_HEAPHDR_CLEAR_FLAG_BITS((h), DUK_HEAPHDR_FLAG_REACHABLE)
4784#define DUK_HEAPHDR_HAS_REACHABLE(h) DUK_HEAPHDR_CHECK_FLAG_BITS((h), DUK_HEAPHDR_FLAG_REACHABLE)
4786#define DUK_HEAPHDR_SET_TEMPROOT(h) DUK_HEAPHDR_SET_FLAG_BITS((h), DUK_HEAPHDR_FLAG_TEMPROOT)
4787#define DUK_HEAPHDR_CLEAR_TEMPROOT(h) DUK_HEAPHDR_CLEAR_FLAG_BITS((h), DUK_HEAPHDR_FLAG_TEMPROOT)
4788#define DUK_HEAPHDR_HAS_TEMPROOT(h) DUK_HEAPHDR_CHECK_FLAG_BITS((h), DUK_HEAPHDR_FLAG_TEMPROOT)
4790#define DUK_HEAPHDR_SET_FINALIZABLE(h) DUK_HEAPHDR_SET_FLAG_BITS((h), DUK_HEAPHDR_FLAG_FINALIZABLE)
4791#define DUK_HEAPHDR_CLEAR_FINALIZABLE(h) DUK_HEAPHDR_CLEAR_FLAG_BITS((h), DUK_HEAPHDR_FLAG_FINALIZABLE)
4792#define DUK_HEAPHDR_HAS_FINALIZABLE(h) DUK_HEAPHDR_CHECK_FLAG_BITS((h), DUK_HEAPHDR_FLAG_FINALIZABLE)
4794#define DUK_HEAPHDR_SET_FINALIZED(h) DUK_HEAPHDR_SET_FLAG_BITS((h), DUK_HEAPHDR_FLAG_FINALIZED)
4795#define DUK_HEAPHDR_CLEAR_FINALIZED(h) DUK_HEAPHDR_CLEAR_FLAG_BITS((h), DUK_HEAPHDR_FLAG_FINALIZED)
4796#define DUK_HEAPHDR_HAS_FINALIZED(h) DUK_HEAPHDR_CHECK_FLAG_BITS((h), DUK_HEAPHDR_FLAG_FINALIZED)
4798#define DUK_HEAPHDR_SET_READONLY(h) DUK_HEAPHDR_SET_FLAG_BITS((h), DUK_HEAPHDR_FLAG_READONLY)
4799#define DUK_HEAPHDR_CLEAR_READONLY(h) DUK_HEAPHDR_CLEAR_FLAG_BITS((h), DUK_HEAPHDR_FLAG_READONLY)
4800#define DUK_HEAPHDR_HAS_READONLY(h) DUK_HEAPHDR_CHECK_FLAG_BITS((h), DUK_HEAPHDR_FLAG_READONLY)
4803#define DUK_HEAPHDR_GET_FLAG_RANGE(h, m, n) (((h)->h_flags >> (m)) & ((1UL << (n)) - 1UL))
4805#define DUK_HEAPHDR_SET_FLAG_RANGE(h, m, n, v) \
4807 (h)->h_flags = ((h)->h_flags & (~(((1UL << (n)) - 1UL) << (m)))) | ((v) << (m)); \
4811#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
4812#define DUK_HEAPHDR_INIT_NULLS(h) \
4814 DUK_HEAPHDR_SET_NEXT((h), (void *) NULL); \
4815 DUK_HEAPHDR_SET_PREV((h), (void *) NULL); \
4818#define DUK_HEAPHDR_INIT_NULLS(h) \
4820 DUK_HEAPHDR_SET_NEXT((h), (void *) NULL); \
4824#define DUK_HEAPHDR_STRING_INIT_NULLS(h) \
4826 (h)->h_next = NULL; \
4837#define DUK_HEAPHDR_IS_OBJECT(h) (DUK_HEAPHDR_GET_TYPE((h)) == DUK_HTYPE_OBJECT)
4839#define DUK_HEAPHDR_IS_OBJECT(h) ((h)->h_flags & 0x01UL)
4840#define DUK_HEAPHDR_IS_STRING(h) (DUK_HEAPHDR_GET_TYPE((h)) == DUK_HTYPE_STRING)
4841#define DUK_HEAPHDR_IS_BUFFER(h) (DUK_HEAPHDR_GET_TYPE((h)) == DUK_HTYPE_BUFFER)
4850#if defined(DUK_USE_ASSERTIONS)
4854#define DUK_HEAPHDR_ASSERT_LINKS(heap, h) \
4856 duk_heaphdr_assert_links((heap), (h)); \
4858#define DUK_HEAPHDR_ASSERT_VALID(h) \
4860 duk_heaphdr_assert_valid((h)); \
4863#define DUK_HEAPHDR_ASSERT_LINKS(heap, h) \
4866#define DUK_HEAPHDR_ASSERT_VALID(h) \
4880#if !defined(DUK_REFCOUNT_H_INCLUDED)
4881#define DUK_REFCOUNT_H_INCLUDED
4883#if defined(DUK_USE_REFERENCE_COUNTING)
4885#if defined(DUK_USE_ROM_OBJECTS)
4890#define DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv) \
4891 (DUK_TVAL_IS_HEAP_ALLOCATED((tv)) && !DUK_HEAPHDR_HAS_READONLY(DUK_TVAL_GET_HEAPHDR((tv))))
4892#define DUK_HEAPHDR_NEEDS_REFCOUNT_UPDATE(h) (!DUK_HEAPHDR_HAS_READONLY((h)))
4895#define DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv) DUK_TVAL_IS_HEAP_ALLOCATED((tv))
4896#define DUK_HEAPHDR_NEEDS_REFCOUNT_UPDATE(h) 1
4904#define DUK_TVAL_INCREF_FAST(thr, tv) \
4906 duk_tval *duk__tv = (tv); \
4907 DUK_ASSERT(duk__tv != NULL); \
4908 if (DUK_TVAL_NEEDS_REFCOUNT_UPDATE(duk__tv)) { \
4909 duk_heaphdr *duk__h = DUK_TVAL_GET_HEAPHDR(duk__tv); \
4910 DUK_ASSERT(duk__h != NULL); \
4911 DUK_ASSERT(DUK_HEAPHDR_HTYPE_VALID(duk__h)); \
4912 DUK_HEAPHDR_PREINC_REFCOUNT(duk__h); \
4913 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT(duk__h) != 0); \
4916#define DUK_TVAL_DECREF_FAST(thr, tv) \
4918 duk_tval *duk__tv = (tv); \
4919 DUK_ASSERT(duk__tv != NULL); \
4920 if (DUK_TVAL_NEEDS_REFCOUNT_UPDATE(duk__tv)) { \
4921 duk_heaphdr *duk__h = DUK_TVAL_GET_HEAPHDR(duk__tv); \
4922 DUK_ASSERT(duk__h != NULL); \
4923 DUK_ASSERT(DUK_HEAPHDR_HTYPE_VALID(duk__h)); \
4924 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT(duk__h) > 0); \
4925 if (DUK_HEAPHDR_PREDEC_REFCOUNT(duk__h) == 0) { \
4926 duk_heaphdr_refzero((thr), duk__h); \
4930#define DUK_TVAL_DECREF_NORZ_FAST(thr, tv) \
4932 duk_tval *duk__tv = (tv); \
4933 DUK_ASSERT(duk__tv != NULL); \
4934 if (DUK_TVAL_NEEDS_REFCOUNT_UPDATE(duk__tv)) { \
4935 duk_heaphdr *duk__h = DUK_TVAL_GET_HEAPHDR(duk__tv); \
4936 DUK_ASSERT(duk__h != NULL); \
4937 DUK_ASSERT(DUK_HEAPHDR_HTYPE_VALID(duk__h)); \
4938 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT(duk__h) > 0); \
4939 if (DUK_HEAPHDR_PREDEC_REFCOUNT(duk__h) == 0) { \
4940 duk_heaphdr_refzero_norz((thr), duk__h); \
4944#define DUK_HEAPHDR_INCREF_FAST(thr, h) \
4946 duk_heaphdr *duk__h = (duk_heaphdr *) (h); \
4947 DUK_ASSERT(duk__h != NULL); \
4948 DUK_ASSERT(DUK_HEAPHDR_HTYPE_VALID(duk__h)); \
4949 if (DUK_HEAPHDR_NEEDS_REFCOUNT_UPDATE(duk__h)) { \
4950 DUK_HEAPHDR_PREINC_REFCOUNT(duk__h); \
4951 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT(duk__h) != 0); \
4954#define DUK_HEAPHDR_DECREF_FAST_RAW(thr, h, rzcall, rzcast) \
4956 duk_heaphdr *duk__h = (duk_heaphdr *) (h); \
4957 DUK_ASSERT(duk__h != NULL); \
4958 DUK_ASSERT(DUK_HEAPHDR_HTYPE_VALID(duk__h)); \
4959 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT(duk__h) > 0); \
4960 if (DUK_HEAPHDR_NEEDS_REFCOUNT_UPDATE(duk__h)) { \
4961 if (DUK_HEAPHDR_PREDEC_REFCOUNT(duk__h) == 0) { \
4962 (rzcall)((thr), (rzcast) duk__h); \
4966#define DUK_HEAPHDR_DECREF_FAST(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_heaphdr_refzero, duk_heaphdr *)
4967#define DUK_HEAPHDR_DECREF_NORZ_FAST(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_heaphdr_refzero_norz, duk_heaphdr *)
4972#define DUK_TVAL_INCREF_SLOW(thr, tv) \
4974 duk_tval_incref((tv)); \
4976#define DUK_TVAL_DECREF_SLOW(thr, tv) \
4978 duk_tval_decref((thr), (tv)); \
4980#define DUK_TVAL_DECREF_NORZ_SLOW(thr, tv) \
4982 duk_tval_decref_norz((thr), (tv)); \
4984#define DUK_HEAPHDR_INCREF_SLOW(thr, h) \
4986 duk_heaphdr_incref((duk_heaphdr *) (h)); \
4988#define DUK_HEAPHDR_DECREF_SLOW(thr, h) \
4990 duk_heaphdr_decref((thr), (duk_heaphdr *) (h)); \
4992#define DUK_HEAPHDR_DECREF_NORZ_SLOW(thr, h) \
4994 duk_heaphdr_decref_norz((thr), (duk_heaphdr *) (h)); \
4996#define DUK_HSTRING_INCREF_SLOW(thr, h) \
4998 duk_heaphdr_incref((duk_heaphdr *) (h)); \
5000#define DUK_HSTRING_DECREF_SLOW(thr, h) \
5002 duk_heaphdr_decref((thr), (duk_heaphdr *) (h)); \
5004#define DUK_HSTRING_DECREF_NORZ_SLOW(thr, h) \
5006 duk_heaphdr_decref_norz((thr), (duk_heaphdr *) (h)); \
5008#define DUK_HBUFFER_INCREF_SLOW(thr, h) \
5010 duk_heaphdr_incref((duk_heaphdr *) (h)); \
5012#define DUK_HBUFFER_DECREF_SLOW(thr, h) \
5014 duk_heaphdr_decref((thr), (duk_heaphdr *) (h)); \
5016#define DUK_HBUFFER_DECREF_NORZ_SLOW(thr, h) \
5018 duk_heaphdr_decref_norz((thr), (duk_heaphdr *) (h)); \
5020#define DUK_HOBJECT_INCREF_SLOW(thr, h) \
5022 duk_heaphdr_incref((duk_heaphdr *) (h)); \
5024#define DUK_HOBJECT_DECREF_SLOW(thr, h) \
5026 duk_heaphdr_decref((thr), (duk_heaphdr *) (h)); \
5028#define DUK_HOBJECT_DECREF_NORZ_SLOW(thr, h) \
5030 duk_heaphdr_decref_norz((thr), (duk_heaphdr *) (h)); \
5037#if defined(DUK_USE_FAST_REFCOUNT_DEFAULT)
5041#define DUK_TVAL_INCREF(thr, tv) DUK_TVAL_INCREF_FAST((thr), (tv))
5042#define DUK_TVAL_DECREF(thr, tv) DUK_TVAL_DECREF_FAST((thr), (tv))
5043#define DUK_TVAL_DECREF_NORZ(thr, tv) DUK_TVAL_DECREF_NORZ_FAST((thr), (tv))
5044#define DUK_HEAPHDR_INCREF(thr, h) DUK_HEAPHDR_INCREF_FAST((thr), (h))
5045#define DUK_HEAPHDR_DECREF(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_heaphdr_refzero, duk_heaphdr *)
5046#define DUK_HEAPHDR_DECREF_NORZ(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_heaphdr_refzero_norz, duk_heaphdr *)
5047#define DUK_HSTRING_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) (h))
5048#define DUK_HSTRING_DECREF(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hstring_refzero, duk_hstring *)
5049#define DUK_HSTRING_DECREF_NORZ(thr, h) \
5050 DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hstring_refzero, duk_hstring *)
5051#define DUK_HOBJECT_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) (h))
5052#define DUK_HOBJECT_DECREF(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero, duk_hobject *)
5053#define DUK_HOBJECT_DECREF_NORZ(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero_norz, duk_hobject *)
5054#define DUK_HBUFFER_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) (h))
5055#define DUK_HBUFFER_DECREF(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hbuffer_refzero, duk_hbuffer *)
5056#define DUK_HBUFFER_DECREF_NORZ(thr, h) \
5057 DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hbuffer_refzero, duk_hbuffer *)
5058#define DUK_HCOMPFUNC_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) &(h)->obj)
5059#define DUK_HCOMPFUNC_DECREF(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero, duk_hobject *)
5060#define DUK_HCOMPFUNC_DECREF_NORZ(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero_norz, duk_hobject *)
5061#define DUK_HNATFUNC_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) &(h)->obj)
5062#define DUK_HNATFUNC_DECREF(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero, duk_hobject *)
5063#define DUK_HNATFUNC_DECREF_NORZ(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero_norz, duk_hobject *)
5064#define DUK_HBUFOBJ_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) &(h)->obj)
5065#define DUK_HBUFOBJ_DECREF(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero, duk_hobject *)
5066#define DUK_HBUFOBJ_DECREF_NORZ(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero_norz, duk_hobject *)
5067#define DUK_HTHREAD_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) &(h)->obj)
5068#define DUK_HTHREAD_DECREF(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero, duk_hobject *)
5069#define DUK_HTHREAD_DECREF_NORZ(thr, h) DUK_HEAPHDR_DECREF_FAST_RAW((thr), (h), duk_hobject_refzero_norz, duk_hobject *)
5071#define DUK_TVAL_INCREF(thr, tv) DUK_TVAL_INCREF_SLOW((thr), (tv))
5072#define DUK_TVAL_DECREF(thr, tv) DUK_TVAL_DECREF_SLOW((thr), (tv))
5073#define DUK_TVAL_DECREF_NORZ(thr, tv) DUK_TVAL_DECREF_NORZ_SLOW((thr), (tv))
5074#define DUK_HEAPHDR_INCREF(thr, h) DUK_HEAPHDR_INCREF_SLOW((thr), (h))
5075#define DUK_HEAPHDR_DECREF(thr, h) DUK_HEAPHDR_DECREF_SLOW((thr), (h))
5076#define DUK_HEAPHDR_DECREF_NORZ(thr, h) DUK_HEAPHDR_DECREF_NORZ_SLOW((thr), (h))
5077#define DUK_HSTRING_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) (h))
5078#define DUK_HSTRING_DECREF(thr, h) DUK_HSTRING_DECREF_SLOW((thr), (h))
5079#define DUK_HSTRING_DECREF_NORZ(thr, h) DUK_HSTRING_DECREF_NORZ_SLOW((thr), (h))
5080#define DUK_HOBJECT_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) (h))
5081#define DUK_HOBJECT_DECREF(thr, h) DUK_HOBJECT_DECREF_SLOW((thr), (h))
5082#define DUK_HOBJECT_DECREF_NORZ(thr, h) DUK_HOBJECT_DECREF_NORZ_SLOW((thr), (h))
5083#define DUK_HBUFFER_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) (h))
5084#define DUK_HBUFFER_DECREF(thr, h) DUK_HBUFFER_DECREF_SLOW((thr), (h))
5085#define DUK_HBUFFER_DECREF_NORZ(thr, h) DUK_HBUFFER_DECREF_NORZ_SLOW((thr), (h))
5086#define DUK_HCOMPFUNC_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) &(h)->obj)
5087#define DUK_HCOMPFUNC_DECREF(thr, h) DUK_HOBJECT_DECREF_SLOW((thr), (duk_hobject *) &(h)->obj)
5088#define DUK_HCOMPFUNC_DECREF_NORZ(thr, h) DUK_HOBJECT_DECREF_NORZ_SLOW((thr), (duk_hobject *) &(h)->obj)
5089#define DUK_HNATFUNC_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) &(h)->obj)
5090#define DUK_HNATFUNC_DECREF(thr, h) DUK_HOBJECT_DECREF_SLOW((thr), (duk_hobject *) &(h)->obj)
5091#define DUK_HNATFUNC_DECREF_NORZ(thr, h) DUK_HOBJECT_DECREF_NORZ_SLOW((thr), (duk_hobject *) &(h)->obj)
5092#define DUK_HBUFOBJ_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) &(h)->obj)
5093#define DUK_HBUFOBJ_DECREF(thr, h) DUK_HOBJECT_DECREF_SLOW((thr), (duk_hobject *) &(h)->obj)
5094#define DUK_HBUFOB_DECREF_NORZ(thr, h) DUK_HOBJECT_DECREF_NORZ_SLOW((thr), (duk_hobject *) &(h)->obj)
5095#define DUK_HTHREAD_INCREF(thr, h) DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) &(h)->obj)
5096#define DUK_HTHREAD_DECREF(thr, h) DUK_HOBJECT_DECREF_SLOW((thr), (duk_hobject *) &(h)->obj)
5097#define DUK_HTHREAD_DECREF_NORZ(thr, h) DUK_HOBJECT_DECREF_NORZ_SLOW((thr), (duk_hobject *) &(h)->obj)
5103#define DUK_HEAPHDR_INCREF_ALLOWNULL(thr, h) \
5105 if ((h) != NULL) { \
5106 DUK_HEAPHDR_INCREF((thr), (duk_heaphdr *) (h)); \
5109#define DUK_HEAPHDR_DECREF_ALLOWNULL(thr, h) \
5111 if ((h) != NULL) { \
5112 DUK_HEAPHDR_DECREF((thr), (duk_heaphdr *) (h)); \
5115#define DUK_HEAPHDR_DECREF_NORZ_ALLOWNULL(thr, h) \
5117 if ((h) != NULL) { \
5118 DUK_HEAPHDR_DECREF_NORZ((thr), (duk_heaphdr *) (h)); \
5121#define DUK_HOBJECT_INCREF_ALLOWNULL(thr, h) \
5123 if ((h) != NULL) { \
5124 DUK_HOBJECT_INCREF((thr), (h)); \
5127#define DUK_HOBJECT_DECREF_ALLOWNULL(thr, h) \
5129 if ((h) != NULL) { \
5130 DUK_HOBJECT_DECREF((thr), (h)); \
5133#define DUK_HOBJECT_DECREF_NORZ_ALLOWNULL(thr, h) \
5135 if ((h) != NULL) { \
5136 DUK_HOBJECT_DECREF_NORZ((thr), (h)); \
5139#define DUK_HBUFFER_INCREF_ALLOWNULL(thr, h) \
5141 if ((h) != NULL) { \
5142 DUK_HBUFFER_INCREF((thr), (h)); \
5145#define DUK_HBUFFER_DECREF_ALLOWNULL(thr, h) \
5147 if ((h) != NULL) { \
5148 DUK_HBUFFER_DECREF((thr), (h)); \
5151#define DUK_HBUFFER_DECREF_NORZ_ALLOWNULL(thr, h) \
5153 if ((h) != NULL) { \
5154 DUK_HBUFFER_DECREF_NORZ((thr), (h)); \
5157#define DUK_HTHREAD_INCREF_ALLOWNULL(thr, h) \
5159 if ((h) != NULL) { \
5160 DUK_HTHREAD_INCREF((thr), (h)); \
5163#define DUK_HTHREAD_DECREF_ALLOWNULL(thr, h) \
5165 if ((h) != NULL) { \
5166 DUK_HTHREAD_DECREF((thr), (h)); \
5169#define DUK_HTHREAD_DECREF_NORZ_ALLOWNULL(thr, h) \
5171 if ((h) != NULL) { \
5172 DUK_HTHREAD_DECREF_NORZ((thr), (h)); \
5181#if defined(DUK_USE_FINALIZER_SUPPORT)
5182#define DUK_REFZERO_CHECK_FAST(thr) \
5184 duk_refzero_check_fast((thr)); \
5186#define DUK_REFZERO_CHECK_SLOW(thr) \
5188 duk_refzero_check_slow((thr)); \
5191#define DUK_REFZERO_CHECK_FAST(thr) \
5194#define DUK_REFZERO_CHECK_SLOW(thr) \
5205#define DUK_TVAL_SET_UNDEFINED_UPDREF_ALT0(thr, tvptr_dst) \
5207 duk_tval *tv__dst; \
5209 tv__dst = (tvptr_dst); \
5210 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5211 DUK_TVAL_SET_UNDEFINED(tv__dst); \
5212 DUK_TVAL_DECREF((thr), &tv__tmp); \
5215#define DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ_ALT0(thr, tvptr_dst) \
5217 duk_tval *tv__dst; \
5219 tv__dst = (tvptr_dst); \
5220 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5221 DUK_TVAL_SET_UNDEFINED(tv__dst); \
5222 DUK_TVAL_DECREF_NORZ((thr), &tv__tmp); \
5225#define DUK_TVAL_SET_UNUSED_UPDREF_ALT0(thr, tvptr_dst) \
5227 duk_tval *tv__dst; \
5229 tv__dst = (tvptr_dst); \
5230 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5231 DUK_TVAL_SET_UNUSED(tv__dst); \
5232 DUK_TVAL_DECREF((thr), &tv__tmp); \
5235#define DUK_TVAL_SET_NULL_UPDREF_ALT0(thr, tvptr_dst) \
5237 duk_tval *tv__dst; \
5239 tv__dst = (tvptr_dst); \
5240 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5241 DUK_TVAL_SET_NULL(tv__dst); \
5242 DUK_TVAL_DECREF((thr), &tv__tmp); \
5245#define DUK_TVAL_SET_BOOLEAN_UPDREF_ALT0(thr, tvptr_dst, newval) \
5247 duk_tval *tv__dst; \
5249 tv__dst = (tvptr_dst); \
5250 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5251 DUK_TVAL_SET_BOOLEAN(tv__dst, (newval)); \
5252 DUK_TVAL_DECREF((thr), &tv__tmp); \
5255#define DUK_TVAL_SET_NUMBER_UPDREF_ALT0(thr, tvptr_dst, newval) \
5257 duk_tval *tv__dst; \
5259 tv__dst = (tvptr_dst); \
5260 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5261 DUK_TVAL_SET_NUMBER(tv__dst, (newval)); \
5262 DUK_TVAL_DECREF((thr), &tv__tmp); \
5264#define DUK_TVAL_SET_NUMBER_CHKFAST_UPDREF_ALT0(thr, tvptr_dst, newval) \
5266 duk_tval *tv__dst; \
5268 tv__dst = (tvptr_dst); \
5269 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5270 DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv__dst, (newval)); \
5271 DUK_TVAL_DECREF((thr), &tv__tmp); \
5273#define DUK_TVAL_SET_DOUBLE_UPDREF_ALT0(thr, tvptr_dst, newval) \
5275 duk_tval *tv__dst; \
5277 tv__dst = (tvptr_dst); \
5278 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5279 DUK_TVAL_SET_DOUBLE(tv__dst, (newval)); \
5280 DUK_TVAL_DECREF((thr), &tv__tmp); \
5282#define DUK_TVAL_SET_NAN_UPDREF_ALT0(thr, tvptr_dst) \
5284 duk_tval *tv__dst; \
5286 tv__dst = (tvptr_dst); \
5287 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5288 DUK_TVAL_SET_NAN(tv__dst); \
5289 DUK_TVAL_DECREF((thr), &tv__tmp); \
5291#if defined(DUK_USE_FASTINT)
5292#define DUK_TVAL_SET_I48_UPDREF_ALT0(thr, tvptr_dst, newval) \
5294 duk_tval *tv__dst; \
5296 tv__dst = (tvptr_dst); \
5297 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5298 DUK_TVAL_SET_I48(tv__dst, (newval)); \
5299 DUK_TVAL_DECREF((thr), &tv__tmp); \
5301#define DUK_TVAL_SET_I32_UPDREF_ALT0(thr, tvptr_dst, newval) \
5303 duk_tval *tv__dst; \
5305 tv__dst = (tvptr_dst); \
5306 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5307 DUK_TVAL_SET_I32(tv__dst, (newval)); \
5308 DUK_TVAL_DECREF((thr), &tv__tmp); \
5310#define DUK_TVAL_SET_U32_UPDREF_ALT0(thr, tvptr_dst, newval) \
5312 duk_tval *tv__dst; \
5314 tv__dst = (tvptr_dst); \
5315 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5316 DUK_TVAL_SET_U32(tv__dst, (newval)); \
5317 DUK_TVAL_DECREF((thr), &tv__tmp); \
5320#define DUK_TVAL_SET_DOUBLE_CAST_UPDREF(thr, tvptr_dst, newval) \
5321 DUK_TVAL_SET_DOUBLE_UPDREF((thr), (tvptr_dst), (duk_double_t) (newval))
5324#define DUK_TVAL_SET_LIGHTFUNC_UPDREF_ALT0(thr, tvptr_dst, lf_v, lf_fp, lf_flags) \
5326 duk_tval *tv__dst; \
5328 tv__dst = (tvptr_dst); \
5329 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5330 DUK_TVAL_SET_LIGHTFUNC(tv__dst, (lf_v), (lf_fp), (lf_flags)); \
5331 DUK_TVAL_DECREF((thr), &tv__tmp); \
5334#define DUK_TVAL_SET_STRING_UPDREF_ALT0(thr, tvptr_dst, newval) \
5336 duk_tval *tv__dst; \
5338 tv__dst = (tvptr_dst); \
5339 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5340 DUK_TVAL_SET_STRING(tv__dst, (newval)); \
5341 DUK_HSTRING_INCREF((thr), (newval)); \
5342 DUK_TVAL_DECREF((thr), &tv__tmp); \
5345#define DUK_TVAL_SET_OBJECT_UPDREF_ALT0(thr, tvptr_dst, newval) \
5347 duk_tval *tv__dst; \
5349 tv__dst = (tvptr_dst); \
5350 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5351 DUK_TVAL_SET_OBJECT(tv__dst, (newval)); \
5352 DUK_HOBJECT_INCREF((thr), (newval)); \
5353 DUK_TVAL_DECREF((thr), &tv__tmp); \
5356#define DUK_TVAL_SET_BUFFER_UPDREF_ALT0(thr, tvptr_dst, newval) \
5358 duk_tval *tv__dst; \
5360 tv__dst = (tvptr_dst); \
5361 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5362 DUK_TVAL_SET_BUFFER(tv__dst, (newval)); \
5363 DUK_HBUFFER_INCREF((thr), (newval)); \
5364 DUK_TVAL_DECREF((thr), &tv__tmp); \
5367#define DUK_TVAL_SET_POINTER_UPDREF_ALT0(thr, tvptr_dst, newval) \
5369 duk_tval *tv__dst; \
5371 tv__dst = (tvptr_dst); \
5372 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5373 DUK_TVAL_SET_POINTER(tv__dst, (newval)); \
5374 DUK_TVAL_DECREF((thr), &tv__tmp); \
5385#define DUK_TVAL_SET_TVAL_UPDREF_ALT0(thr, tvptr_dst, tvptr_src) \
5387 duk_tval *tv__dst, *tv__src; \
5389 tv__dst = (tvptr_dst); \
5390 tv__src = (tvptr_src); \
5391 DUK_TVAL_SET_TVAL(&tv__tmp, tv__dst); \
5392 DUK_TVAL_SET_TVAL(tv__dst, tv__src); \
5393 DUK_TVAL_INCREF((thr), tv__src); \
5394 DUK_TVAL_DECREF((thr), &tv__tmp); \
5400#define DUK_TVAL_SET_TVAL_UPDREF_ALT1(thr, tvptr_dst, tvptr_src) \
5402 duk_tval *tv__dst, *tv__src; \
5403 duk_heaphdr *h__obj; \
5404 tv__dst = (tvptr_dst); \
5405 tv__src = (tvptr_src); \
5406 DUK_TVAL_INCREF_FAST((thr), tv__src); \
5407 if (DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv__dst)) { \
5408 h__obj = DUK_TVAL_GET_HEAPHDR(tv__dst); \
5409 DUK_ASSERT(h__obj != NULL); \
5410 DUK_TVAL_SET_TVAL(tv__dst, tv__src); \
5411 DUK_HEAPHDR_DECREF_FAST((thr), h__obj); \
5413 DUK_TVAL_SET_TVAL(tv__dst, tv__src); \
5418#define DUK_TVAL_SET_UNDEFINED_UPDREF DUK_TVAL_SET_UNDEFINED_UPDREF_ALT0
5419#define DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ_ALT0
5420#define DUK_TVAL_SET_UNUSED_UPDREF DUK_TVAL_SET_UNUSED_UPDREF_ALT0
5421#define DUK_TVAL_SET_NULL_UPDREF DUK_TVAL_SET_NULL_UPDREF_ALT0
5422#define DUK_TVAL_SET_BOOLEAN_UPDREF DUK_TVAL_SET_BOOLEAN_UPDREF_ALT0
5423#define DUK_TVAL_SET_NUMBER_UPDREF DUK_TVAL_SET_NUMBER_UPDREF_ALT0
5424#define DUK_TVAL_SET_NUMBER_CHKFAST_UPDREF DUK_TVAL_SET_NUMBER_CHKFAST_UPDREF_ALT0
5425#define DUK_TVAL_SET_DOUBLE_UPDREF DUK_TVAL_SET_DOUBLE_UPDREF_ALT0
5426#define DUK_TVAL_SET_NAN_UPDREF DUK_TVAL_SET_NAN_UPDREF_ALT0
5427#if defined(DUK_USE_FASTINT)
5428#define DUK_TVAL_SET_I48_UPDREF DUK_TVAL_SET_I48_UPDREF_ALT0
5429#define DUK_TVAL_SET_I32_UPDREF DUK_TVAL_SET_I32_UPDREF_ALT0
5430#define DUK_TVAL_SET_U32_UPDREF DUK_TVAL_SET_U32_UPDREF_ALT0
5432#define DUK_TVAL_SET_I48_UPDREF DUK_TVAL_SET_DOUBLE_CAST_UPDREF
5433#define DUK_TVAL_SET_I32_UPDREF DUK_TVAL_SET_DOUBLE_CAST_UPDREF
5434#define DUK_TVAL_SET_U32_UPDREF DUK_TVAL_SET_DOUBLE_CAST_UPDREF
5436#define DUK_TVAL_SET_FASTINT_UPDREF DUK_TVAL_SET_I48_UPDREF
5437#define DUK_TVAL_SET_LIGHTFUNC_UPDREF DUK_TVAL_SET_LIGHTFUNC_UPDREF_ALT0
5438#define DUK_TVAL_SET_STRING_UPDREF DUK_TVAL_SET_STRING_UPDREF_ALT0
5439#define DUK_TVAL_SET_OBJECT_UPDREF DUK_TVAL_SET_OBJECT_UPDREF_ALT0
5440#define DUK_TVAL_SET_BUFFER_UPDREF DUK_TVAL_SET_BUFFER_UPDREF_ALT0
5441#define DUK_TVAL_SET_POINTER_UPDREF DUK_TVAL_SET_POINTER_UPDREF_ALT0
5443#if defined(DUK_USE_FAST_REFCOUNT_DEFAULT)
5445#define DUK_TVAL_SET_TVAL_UPDREF DUK_TVAL_SET_TVAL_UPDREF_ALT1
5446#define DUK_TVAL_SET_TVAL_UPDREF_FAST DUK_TVAL_SET_TVAL_UPDREF_ALT1
5447#define DUK_TVAL_SET_TVAL_UPDREF_SLOW DUK_TVAL_SET_TVAL_UPDREF_ALT0
5450#define DUK_TVAL_SET_TVAL_UPDREF DUK_TVAL_SET_TVAL_UPDREF_ALT0
5451#define DUK_TVAL_SET_TVAL_UPDREF_FAST DUK_TVAL_SET_TVAL_UPDREF_ALT0
5452#define DUK_TVAL_SET_TVAL_UPDREF_SLOW DUK_TVAL_SET_TVAL_UPDREF_ALT0
5457#define DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv) 0
5458#define DUK_HEAPHDR_NEEDS_REFCOUNT_UPDATE(h) 0
5460#define DUK_TVAL_INCREF_FAST(thr, v) \
5463#define DUK_TVAL_DECREF_FAST(thr, v) \
5466#define DUK_TVAL_DECREF_NORZ_FAST(thr, v) \
5469#define DUK_TVAL_INCREF_SLOW(thr, v) \
5472#define DUK_TVAL_DECREF_SLOW(thr, v) \
5475#define DUK_TVAL_DECREF_NORZ_SLOW(thr, v) \
5478#define DUK_TVAL_INCREF(thr, v) \
5481#define DUK_TVAL_DECREF(thr, v) \
5484#define DUK_TVAL_DECREF_NORZ(thr, v) \
5487#define DUK_HEAPHDR_INCREF_FAST(thr, h) \
5490#define DUK_HEAPHDR_DECREF_FAST(thr, h) \
5493#define DUK_HEAPHDR_DECREF_NORZ_FAST(thr, h) \
5496#define DUK_HEAPHDR_INCREF_SLOW(thr, h) \
5499#define DUK_HEAPHDR_DECREF_SLOW(thr, h) \
5502#define DUK_HEAPHDR_DECREF_NORZ_SLOW(thr, h) \
5505#define DUK_HEAPHDR_INCREF(thr, h) \
5508#define DUK_HEAPHDR_DECREF(thr, h) \
5511#define DUK_HEAPHDR_DECREF_NORZ(thr, h) \
5514#define DUK_HSTRING_INCREF_FAST(thr, h) \
5517#define DUK_HSTRING_DECREF_FAST(thr, h) \
5520#define DUK_HSTRING_DECREF_NORZ_FAST(thr, h) \
5523#define DUK_HSTRING_INCREF_SLOW(thr, h) \
5526#define DUK_HSTRING_DECREF_SLOW(thr, h) \
5529#define DUK_HSTRING_DECREF_NORZ_SLOW(thr, h) \
5532#define DUK_HSTRING_INCREF(thr, h) \
5535#define DUK_HSTRING_DECREF(thr, h) \
5538#define DUK_HSTRING_DECREF_NORZ(thr, h) \
5541#define DUK_HOBJECT_INCREF_FAST(thr, h) \
5544#define DUK_HOBJECT_DECREF_FAST(thr, h) \
5547#define DUK_HOBJECT_DECREF_NORZ_FAST(thr, h) \
5550#define DUK_HOBJECT_INCREF_SLOW(thr, h) \
5553#define DUK_HOBJECT_DECREF_SLOW(thr, h) \
5556#define DUK_HOBJECT_DECREF_NORZ_SLOW(thr, h) \
5559#define DUK_HOBJECT_INCREF(thr, h) \
5562#define DUK_HOBJECT_DECREF(thr, h) \
5565#define DUK_HOBJECT_DECREF_NORZ(thr, h) \
5568#define DUK_HBUFFER_INCREF_FAST(thr, h) \
5571#define DUK_HBUFFER_DECREF_FAST(thr, h) \
5574#define DUK_HBUFFER_DECREF_NORZ_FAST(thr, h) \
5577#define DUK_HBUFFER_INCREF_SLOW(thr, h) \
5580#define DUK_HBUFFER_DECREF_SLOW(thr, h) \
5583#define DUK_HBUFFER_DECREF_NORZ_SLOW(thr, h) \
5586#define DUK_HBUFFER_INCREF(thr, h) \
5589#define DUK_HBUFFER_DECREF(thr, h) \
5592#define DUK_HBUFFER_DECREF_NORZ(thr, h) \
5596#define DUK_HCOMPFUNC_INCREF(thr, h) \
5599#define DUK_HCOMPFUNC_DECREF(thr, h) \
5602#define DUK_HCOMPFUNC_DECREF_NORZ(thr, h) \
5605#define DUK_HNATFUNC_INCREF(thr, h) \
5608#define DUK_HNATFUNC_DECREF(thr, h) \
5611#define DUK_HNATFUNC_DECREF_NORZ(thr, h) \
5614#define DUK_HBUFOBJ_INCREF(thr, h) \
5617#define DUK_HBUFOBJ_DECREF(thr, h) \
5620#define DUK_HBUFOBJ_DECREF_NORZ(thr, h) \
5623#define DUK_HTHREAD_INCREF(thr, h) \
5626#define DUK_HTHREAD_DECREF(thr, h) \
5629#define DUK_HTHREAD_DECREF_NORZ(thr, h) \
5632#define DUK_HOBJECT_INCREF_ALLOWNULL(thr, h) \
5635#define DUK_HOBJECT_DECREF_ALLOWNULL(thr, h) \
5638#define DUK_HOBJECT_DECREF_NORZ_ALLOWNULL(thr, h) \
5641#define DUK_HBUFFER_INCREF_ALLOWNULL(thr, h) \
5644#define DUK_HBUFFER_DECREF_ALLOWNULL(thr, h) \
5647#define DUK_HBUFFER_DECREF_NORZ_ALLOWNULL(thr, h) \
5651#define DUK_REFZERO_CHECK_FAST(thr) \
5654#define DUK_REFZERO_CHECK_SLOW(thr) \
5658#define DUK_TVAL_SET_UNDEFINED_UPDREF_ALT0(thr, tvptr_dst) \
5660 duk_tval *tv__dst; \
5661 tv__dst = (tvptr_dst); \
5662 DUK_TVAL_SET_UNDEFINED(tv__dst); \
5666#define DUK_TVAL_SET_UNUSED_UPDREF_ALT0(thr, tvptr_dst) \
5668 duk_tval *tv__dst; \
5669 tv__dst = (tvptr_dst); \
5670 DUK_TVAL_SET_UNUSED(tv__dst); \
5674#define DUK_TVAL_SET_NULL_UPDREF_ALT0(thr, tvptr_dst) \
5676 duk_tval *tv__dst; \
5677 tv__dst = (tvptr_dst); \
5678 DUK_TVAL_SET_NULL(tv__dst); \
5682#define DUK_TVAL_SET_BOOLEAN_UPDREF_ALT0(thr, tvptr_dst, newval) \
5684 duk_tval *tv__dst; \
5685 tv__dst = (tvptr_dst); \
5686 DUK_TVAL_SET_BOOLEAN(tv__dst, (newval)); \
5690#define DUK_TVAL_SET_NUMBER_UPDREF_ALT0(thr, tvptr_dst, newval) \
5692 duk_tval *tv__dst; \
5693 tv__dst = (tvptr_dst); \
5694 DUK_TVAL_SET_NUMBER(tv__dst, (newval)); \
5697#define DUK_TVAL_SET_NUMBER_CHKFAST_UPDREF_ALT0(thr, tvptr_dst, newval) \
5699 duk_tval *tv__dst; \
5700 tv__dst = (tvptr_dst); \
5701 DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv__dst, (newval)); \
5704#define DUK_TVAL_SET_DOUBLE_UPDREF_ALT0(thr, tvptr_dst, newval) \
5706 duk_tval *tv__dst; \
5707 tv__dst = (tvptr_dst); \
5708 DUK_TVAL_SET_DOUBLE(tv__dst, (newval)); \
5711#define DUK_TVAL_SET_NAN_UPDREF_ALT0(thr, tvptr_dst) \
5713 duk_tval *tv__dst; \
5714 tv__dst = (tvptr_dst); \
5715 DUK_TVAL_SET_NAN(tv__dst); \
5718#if defined(DUK_USE_FASTINT)
5719#define DUK_TVAL_SET_I48_UPDREF_ALT0(thr, tvptr_dst, newval) \
5721 duk_tval *tv__dst; \
5722 tv__dst = (tvptr_dst); \
5723 DUK_TVAL_SET_I48(tv__dst, (newval)); \
5726#define DUK_TVAL_SET_I32_UPDREF_ALT0(thr, tvptr_dst, newval) \
5728 duk_tval *tv__dst; \
5729 tv__dst = (tvptr_dst); \
5730 DUK_TVAL_SET_I32(tv__dst, (newval)); \
5733#define DUK_TVAL_SET_U32_UPDREF_ALT0(thr, tvptr_dst, newval) \
5735 duk_tval *tv__dst; \
5736 tv__dst = (tvptr_dst); \
5737 DUK_TVAL_SET_U32(tv__dst, (newval)); \
5741#define DUK_TVAL_SET_DOUBLE_CAST_UPDREF(thr, tvptr_dst, newval) \
5742 DUK_TVAL_SET_DOUBLE_UPDREF((thr), (tvptr_dst), (duk_double_t) (newval))
5745#define DUK_TVAL_SET_LIGHTFUNC_UPDREF_ALT0(thr, tvptr_dst, lf_v, lf_fp, lf_flags) \
5747 duk_tval *tv__dst; \
5748 tv__dst = (tvptr_dst); \
5749 DUK_TVAL_SET_LIGHTFUNC(tv__dst, (lf_v), (lf_fp), (lf_flags)); \
5753#define DUK_TVAL_SET_STRING_UPDREF_ALT0(thr, tvptr_dst, newval) \
5755 duk_tval *tv__dst; \
5756 tv__dst = (tvptr_dst); \
5757 DUK_TVAL_SET_STRING(tv__dst, (newval)); \
5761#define DUK_TVAL_SET_OBJECT_UPDREF_ALT0(thr, tvptr_dst, newval) \
5763 duk_tval *tv__dst; \
5764 tv__dst = (tvptr_dst); \
5765 DUK_TVAL_SET_OBJECT(tv__dst, (newval)); \
5769#define DUK_TVAL_SET_BUFFER_UPDREF_ALT0(thr, tvptr_dst, newval) \
5771 duk_tval *tv__dst; \
5772 tv__dst = (tvptr_dst); \
5773 DUK_TVAL_SET_BUFFER(tv__dst, (newval)); \
5777#define DUK_TVAL_SET_POINTER_UPDREF_ALT0(thr, tvptr_dst, newval) \
5779 duk_tval *tv__dst; \
5780 tv__dst = (tvptr_dst); \
5781 DUK_TVAL_SET_POINTER(tv__dst, (newval)); \
5785#define DUK_TVAL_SET_TVAL_UPDREF_ALT0(thr, tvptr_dst, tvptr_src) \
5787 duk_tval *tv__dst, *tv__src; \
5788 tv__dst = (tvptr_dst); \
5789 tv__src = (tvptr_src); \
5790 DUK_TVAL_SET_TVAL(tv__dst, tv__src); \
5794#define DUK_TVAL_SET_UNDEFINED_UPDREF DUK_TVAL_SET_UNDEFINED_UPDREF_ALT0
5795#define DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ DUK_TVAL_SET_UNDEFINED_UPDREF_ALT0
5796#define DUK_TVAL_SET_UNUSED_UPDREF DUK_TVAL_SET_UNUSED_UPDREF_ALT0
5797#define DUK_TVAL_SET_NULL_UPDREF DUK_TVAL_SET_NULL_UPDREF_ALT0
5798#define DUK_TVAL_SET_BOOLEAN_UPDREF DUK_TVAL_SET_BOOLEAN_UPDREF_ALT0
5799#define DUK_TVAL_SET_NUMBER_UPDREF DUK_TVAL_SET_NUMBER_UPDREF_ALT0
5800#define DUK_TVAL_SET_NUMBER_CHKFAST_UPDREF DUK_TVAL_SET_NUMBER_CHKFAST_UPDREF_ALT0
5801#define DUK_TVAL_SET_DOUBLE_UPDREF DUK_TVAL_SET_DOUBLE_UPDREF_ALT0
5802#define DUK_TVAL_SET_NAN_UPDREF DUK_TVAL_SET_NAN_UPDREF_ALT0
5803#if defined(DUK_USE_FASTINT)
5804#define DUK_TVAL_SET_I48_UPDREF DUK_TVAL_SET_I48_UPDREF_ALT0
5805#define DUK_TVAL_SET_I32_UPDREF DUK_TVAL_SET_I32_UPDREF_ALT0
5806#define DUK_TVAL_SET_U32_UPDREF DUK_TVAL_SET_U32_UPDREF_ALT0
5808#define DUK_TVAL_SET_I48_UPDREF DUK_TVAL_SET_DOUBLE_CAST_UPDREF
5809#define DUK_TVAL_SET_I32_UPDREF DUK_TVAL_SET_DOUBLE_CAST_UPDREF
5810#define DUK_TVAL_SET_U32_UPDREF DUK_TVAL_SET_DOUBLE_CAST_UPDREF
5812#define DUK_TVAL_SET_FASTINT_UPDREF DUK_TVAL_SET_I48_UPDREF
5813#define DUK_TVAL_SET_LIGHTFUNC_UPDREF DUK_TVAL_SET_LIGHTFUNC_UPDREF_ALT0
5814#define DUK_TVAL_SET_STRING_UPDREF DUK_TVAL_SET_STRING_UPDREF_ALT0
5815#define DUK_TVAL_SET_OBJECT_UPDREF DUK_TVAL_SET_OBJECT_UPDREF_ALT0
5816#define DUK_TVAL_SET_BUFFER_UPDREF DUK_TVAL_SET_BUFFER_UPDREF_ALT0
5817#define DUK_TVAL_SET_POINTER_UPDREF DUK_TVAL_SET_POINTER_UPDREF_ALT0
5819#define DUK_TVAL_SET_TVAL_UPDREF DUK_TVAL_SET_TVAL_UPDREF_ALT0
5820#define DUK_TVAL_SET_TVAL_UPDREF_FAST DUK_TVAL_SET_TVAL_UPDREF_ALT0
5821#define DUK_TVAL_SET_TVAL_UPDREF_SLOW DUK_TVAL_SET_TVAL_UPDREF_ALT0
5829#define DUK_TVAL_SET_TVAL_UPDREF_NORZ(thr, tv_dst, tv_src) \
5831 duk_hthread *duk__thr = (thr); \
5832 duk_tval *duk__dst = (tv_dst); \
5833 duk_tval *duk__src = (tv_src); \
5834 DUK_UNREF(duk__thr); \
5835 DUK_TVAL_DECREF_NORZ(thr, duk__dst); \
5836 DUK_TVAL_SET_TVAL(duk__dst, duk__src); \
5837 DUK_TVAL_INCREF(thr, duk__dst); \
5840#define DUK_TVAL_SET_U32_UPDREF_NORZ(thr, tv_dst, val) \
5842 duk_hthread *duk__thr = (thr); \
5843 duk_tval *duk__dst = (tv_dst); \
5844 duk_uint32_t duk__val = (duk_uint32_t) (val); \
5845 DUK_UNREF(duk__thr); \
5846 DUK_TVAL_DECREF_NORZ(thr, duk__dst); \
5847 DUK_TVAL_SET_U32(duk__dst, duk__val); \
5854#if defined(DUK_USE_REFERENCE_COUNTING)
5855#if defined(DUK_USE_FINALIZER_SUPPORT)
5871#if defined(DUK_USE_FAST_REFCOUNT_DEFAULT)
5895#if !defined(DUK_API_INTERNAL_H_INCLUDED)
5896#define DUK_API_INTERNAL_H_INCLUDED
5899#if defined(DUK_USE_PREFER_SIZE)
5900#define DUK_INLINE_PERF
5901#define DUK_ALWAYS_INLINE_PERF
5902#define DUK_NOINLINE_PERF
5904#define DUK_INLINE_PERF DUK_INLINE
5905#define DUK_ALWAYS_INLINE_PERF DUK_ALWAYS_INLINE
5906#define DUK_NOINLINE_PERF DUK_NOINLINE
5910#if defined(DUK_USE_EXEC_PREFER_SIZE)
5911#define DUK_EXEC_INLINE_PERF
5912#define DUK_EXEC_ALWAYS_INLINE_PERF
5913#define DUK_EXEC_NOINLINE_PERF
5915#define DUK_EXEC_INLINE_PERF DUK_INLINE
5916#define DUK_EXEC_ALWAYS_INLINE_PERF DUK_ALWAYS_INLINE
5917#define DUK_EXEC_NOINLINE_PERF DUK_NOINLINE
5921#define DUK_PUSH_SPRINTF_INITIAL_SIZE 256L
5922#define DUK_PUSH_SPRINTF_SANITY_LIMIT (1L * 1024L * 1024L * 1024L)
5927#define DUK_ERRCODE_FLAG_NOBLAME_FILELINE (1L << 24)
5959#if defined(DUK_USE_VERBOSE_ERRORS) && defined(DUK_USE_PARANOID_ERRORS)
5989#define duk_push_u64(thr, val) duk_push_number((thr), (duk_double_t) (val))
5990#define duk_push_i64(thr, val) duk_push_number((thr), (duk_double_t) (val))
5993#define duk_push_u32(thr, val) duk_push_uint((thr), (duk_uint_t) (val))
5994#define duk_push_i32(thr, val) duk_push_int((thr), (duk_int_t) (val))
5997#define duk_push_idx(thr, val) duk_push_int((thr), (duk_int_t) (val))
5998#define duk_push_uarridx(thr, val) duk_push_uint((thr), (duk_uint_t) (val))
5999#define duk_push_size_t(thr, val) duk_push_uint((thr), (duk_uint_t) (val))
6029#define duk_require_hobject_promote_lfunc(thr, idx) duk_require_hobject_promote_mask((thr), (idx), DUK_TYPE_MASK_LIGHTFUNC)
6030#define duk_get_hobject_promote_lfunc(thr, idx) duk_get_hobject_promote_mask((thr), (idx), DUK_TYPE_MASK_LIGHTFUNC)
6055#if defined(DUK_USE_DEBUGGER_SUPPORT)
6067#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
6089#define duk_push_hthread(thr, h) duk_push_hobject((thr), (duk_hobject *) (h))
6090#define duk_push_hnatfunc(thr, h) duk_push_hobject((thr), (duk_hobject *) (h))
6117#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
6139#define duk_get_prop_stridx_short(thr, obj_idx, stridx) \
6140 (DUK_ASSERT_EXPR((duk_int_t) (obj_idx) >= -0x8000L && (duk_int_t) (obj_idx) <= 0x7fffL), \
6141 DUK_ASSERT_EXPR((duk_int_t) (stridx) >= 0 && (duk_int_t) (stridx) <= 0xffffL), \
6142 duk_get_prop_stridx_short_raw((thr), (((duk_uint_t) (obj_idx)) << 16) + ((duk_uint_t) (stridx))))
6151#define duk_xget_owndataprop_stridx_short(thr, obj_idx, stridx) \
6152 (DUK_ASSERT_EXPR((duk_int_t) (obj_idx) >= -0x8000L && (duk_int_t) (obj_idx) <= 0x7fffL), \
6153 DUK_ASSERT_EXPR((duk_int_t) (stridx) >= 0 && (duk_int_t) (stridx) <= 0xffffL), \
6154 duk_xget_owndataprop_stridx_short_raw((thr), (((duk_uint_t) (obj_idx)) << 16) + ((duk_uint_t) (stridx))))
6158#define duk_put_prop_stridx_short(thr, obj_idx, stridx) \
6159 (DUK_ASSERT_EXPR((duk_int_t) (obj_idx) >= -0x8000L && (duk_int_t) (obj_idx) <= 0x7fffL), \
6160 DUK_ASSERT_EXPR((duk_int_t) (stridx) >= 0 && (duk_int_t) (stridx) <= 0xffffL), \
6161 duk_put_prop_stridx_short_raw((thr), (((duk_uint_t) (obj_idx)) << 16) + ((duk_uint_t) (stridx))))
6166#define duk_del_prop_stridx_short(thr, obj_idx, stridx) \
6167 (DUK_ASSERT_EXPR((obj_idx) >= -0x8000L && (obj_idx) <= 0x7fffL), \
6168 DUK_ASSERT_EXPR((stridx) >= 0 && (stridx) <= 0xffffL), \
6169 duk_del_prop_stridx_short_raw((thr), (((duk_uint_t) (obj_idx)) << 16) + ((duk_uint_t) (stridx))))
6171#define duk_del_prop_stridx_short(thr, obj_idx, stridx) duk_del_prop_stridx((thr), (obj_idx), (stridx))
6176#define duk_has_prop_stridx_short(thr, obj_idx, stridx) \
6177 (DUK_ASSERT_EXPR((obj_idx) >= -0x8000L && (obj_idx) <= 0x7fffL), \
6178 DUK_ASSERT_EXPR((stridx) >= 0 && (stridx) <= 0xffffL), \
6179 duk_has_prop_stridx_short_raw((thr), (((duk_uint_t) (obj_idx)) << 16) + ((duk_uint_t) (stridx))))
6181#define duk_has_prop_stridx_short(thr, obj_idx, stridx) duk_has_prop_stridx((thr), (obj_idx), (stridx))
6198#define duk_xdef_prop_stridx_short(thr, obj_idx, stridx, desc_flags) \
6199 (DUK_ASSERT_EXPR((duk_int_t) (obj_idx) >= -0x80L && (duk_int_t) (obj_idx) <= 0x7fL), \
6200 DUK_ASSERT_EXPR((duk_int_t) (stridx) >= 0 && (duk_int_t) (stridx) <= 0xffffL), \
6201 DUK_ASSERT_EXPR((duk_int_t) (desc_flags) >= 0 && (duk_int_t) (desc_flags) <= 0xffL), \
6202 duk_xdef_prop_stridx_short_raw((thr), \
6203 (((duk_uint_t) (obj_idx)) << 24) + (((duk_uint_t) (stridx)) << 8) + \
6204 (duk_uint_t) (desc_flags)))
6206#define duk_xdef_prop_wec(thr, obj_idx) duk_xdef_prop((thr), (obj_idx), DUK_PROPDESC_FLAGS_WEC)
6207#define duk_xdef_prop_index_wec(thr, obj_idx, arr_idx) duk_xdef_prop_index((thr), (obj_idx), (arr_idx), DUK_PROPDESC_FLAGS_WEC)
6208#define duk_xdef_prop_stridx_wec(thr, obj_idx, stridx) duk_xdef_prop_stridx((thr), (obj_idx), (stridx), DUK_PROPDESC_FLAGS_WEC)
6209#define duk_xdef_prop_stridx_short_wec(thr, obj_idx, stridx) \
6210 duk_xdef_prop_stridx_short((thr), (obj_idx), (stridx), DUK_PROPDESC_FLAGS_WEC)
6254#if defined(DUK_USE_SYMBOL_BUILTIN)
6265#define DUK_ASSERT_VALID_NEGIDX(thr, idx) \
6266 (DUK_ASSERT_EXPR((duk_int_t) (idx) < 0), DUK_ASSERT_EXPR(duk_is_valid_index((thr), (idx))))
6267#define DUK_ASSERT_VALID_POSIDX(thr, idx) \
6268 (DUK_ASSERT_EXPR((duk_int_t) (idx) >= 0), DUK_ASSERT_EXPR(duk_is_valid_index((thr), (idx))))
6269#define DUK_GET_TVAL_NEGIDX(thr, idx) (DUK_ASSERT_VALID_NEGIDX((thr), (idx)), ((duk_hthread *) (thr))->valstack_top + (idx))
6270#define DUK_GET_TVAL_POSIDX(thr, idx) (DUK_ASSERT_VALID_POSIDX((thr), (idx)), ((duk_hthread *) (thr))->valstack_bottom + (idx))
6271#define DUK_GET_HOBJECT_NEGIDX(thr, idx) \
6272 (DUK_ASSERT_VALID_NEGIDX((thr), (idx)), DUK_TVAL_GET_OBJECT(((duk_hthread *) (thr))->valstack_top + (idx)))
6273#define DUK_GET_HOBJECT_POSIDX(thr, idx) \
6274 (DUK_ASSERT_VALID_POSIDX((thr), (idx)), DUK_TVAL_GET_OBJECT(((duk_hthread *) (thr))->valstack_bottom + (idx)))
6276#define DUK_GET_THIS_TVAL_PTR(thr) (DUK_ASSERT_EXPR((thr)->valstack_bottom > (thr)->valstack), (thr)->valstack_bottom - 1)
6300#if !defined(DUK_HSTRING_H_INCLUDED)
6301#define DUK_HSTRING_H_INCLUDED
6312#if defined(DUK_USE_STRLEN16)
6313#define DUK_HSTRING_MAX_BYTELEN (0x0000ffffUL)
6315#define DUK_HSTRING_MAX_BYTELEN (0x7fffffffUL)
6327#define DUK_HSTRING_FLAG_ASCII DUK_HEAPHDR_USER_FLAG(0)
6328#define DUK_HSTRING_FLAG_ARRIDX DUK_HEAPHDR_USER_FLAG(1)
6329#define DUK_HSTRING_FLAG_SYMBOL DUK_HEAPHDR_USER_FLAG(2)
6330#define DUK_HSTRING_FLAG_HIDDEN \
6331 DUK_HEAPHDR_USER_FLAG(3)
6332#define DUK_HSTRING_FLAG_RESERVED_WORD DUK_HEAPHDR_USER_FLAG(4)
6333#define DUK_HSTRING_FLAG_STRICT_RESERVED_WORD DUK_HEAPHDR_USER_FLAG(5)
6334#define DUK_HSTRING_FLAG_EVAL_OR_ARGUMENTS DUK_HEAPHDR_USER_FLAG(6)
6335#define DUK_HSTRING_FLAG_EXTDATA DUK_HEAPHDR_USER_FLAG(7)
6336#define DUK_HSTRING_FLAG_PINNED_LITERAL DUK_HEAPHDR_USER_FLAG(8)
6338#define DUK_HSTRING_HAS_ASCII(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_ASCII)
6339#define DUK_HSTRING_HAS_ARRIDX(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_ARRIDX)
6340#define DUK_HSTRING_HAS_SYMBOL(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_SYMBOL)
6341#define DUK_HSTRING_HAS_HIDDEN(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_HIDDEN)
6342#define DUK_HSTRING_HAS_RESERVED_WORD(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_RESERVED_WORD)
6343#define DUK_HSTRING_HAS_STRICT_RESERVED_WORD(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_STRICT_RESERVED_WORD)
6344#define DUK_HSTRING_HAS_EVAL_OR_ARGUMENTS(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_EVAL_OR_ARGUMENTS)
6345#define DUK_HSTRING_HAS_EXTDATA(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_EXTDATA)
6346#define DUK_HSTRING_HAS_PINNED_LITERAL(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_PINNED_LITERAL)
6348#define DUK_HSTRING_SET_ASCII(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_ASCII)
6349#define DUK_HSTRING_SET_ARRIDX(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_ARRIDX)
6350#define DUK_HSTRING_SET_SYMBOL(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_SYMBOL)
6351#define DUK_HSTRING_SET_HIDDEN(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_HIDDEN)
6352#define DUK_HSTRING_SET_RESERVED_WORD(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_RESERVED_WORD)
6353#define DUK_HSTRING_SET_STRICT_RESERVED_WORD(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_STRICT_RESERVED_WORD)
6354#define DUK_HSTRING_SET_EVAL_OR_ARGUMENTS(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_EVAL_OR_ARGUMENTS)
6355#define DUK_HSTRING_SET_EXTDATA(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_EXTDATA)
6356#define DUK_HSTRING_SET_PINNED_LITERAL(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_PINNED_LITERAL)
6358#define DUK_HSTRING_CLEAR_ASCII(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_ASCII)
6359#define DUK_HSTRING_CLEAR_ARRIDX(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_ARRIDX)
6360#define DUK_HSTRING_CLEAR_SYMBOL(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_SYMBOL)
6361#define DUK_HSTRING_CLEAR_HIDDEN(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_HIDDEN)
6362#define DUK_HSTRING_CLEAR_RESERVED_WORD(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_RESERVED_WORD)
6363#define DUK_HSTRING_CLEAR_STRICT_RESERVED_WORD(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_STRICT_RESERVED_WORD)
6364#define DUK_HSTRING_CLEAR_EVAL_OR_ARGUMENTS(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_EVAL_OR_ARGUMENTS)
6365#define DUK_HSTRING_CLEAR_EXTDATA(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_EXTDATA)
6366#define DUK_HSTRING_CLEAR_PINNED_LITERAL(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HSTRING_FLAG_PINNED_LITERAL)
6371#define DUK_HSTRING_IS_ASCII(x) (DUK_HSTRING_GET_BYTELEN((x)) == DUK_HSTRING_GET_CHARLEN((x)))
6373#define DUK_HSTRING_IS_ASCII(x) DUK_HSTRING_HAS_ASCII((x))
6374#define DUK_HSTRING_IS_EMPTY(x) (DUK_HSTRING_GET_BYTELEN((x)) == 0)
6376#if defined(DUK_USE_STRHASH16)
6377#define DUK_HSTRING_GET_HASH(x) ((x)->hdr.h_flags >> 16)
6378#define DUK_HSTRING_SET_HASH(x, v) \
6380 (x)->hdr.h_flags = ((x)->hdr.h_flags & 0x0000ffffUL) | ((v) << 16); \
6383#define DUK_HSTRING_GET_HASH(x) ((x)->hash)
6384#define DUK_HSTRING_SET_HASH(x, v) \
6390#if defined(DUK_USE_STRLEN16)
6391#define DUK_HSTRING_GET_BYTELEN(x) ((x)->hdr.h_strextra16)
6392#define DUK_HSTRING_SET_BYTELEN(x, v) \
6394 (x)->hdr.h_strextra16 = (v); \
6396#if defined(DUK_USE_HSTRING_CLEN)
6397#define DUK_HSTRING_GET_CHARLEN(x) duk_hstring_get_charlen((x))
6398#define DUK_HSTRING_SET_CHARLEN(x, v) \
6400 (x)->clen16 = (v); \
6403#define DUK_HSTRING_GET_CHARLEN(x) duk_hstring_get_charlen((x))
6404#define DUK_HSTRING_SET_CHARLEN(x, v) \
6410#define DUK_HSTRING_GET_BYTELEN(x) ((x)->blen)
6411#define DUK_HSTRING_SET_BYTELEN(x, v) \
6415#define DUK_HSTRING_GET_CHARLEN(x) duk_hstring_get_charlen((x))
6416#define DUK_HSTRING_SET_CHARLEN(x, v) \
6422#if defined(DUK_USE_HSTRING_EXTDATA)
6423#define DUK_HSTRING_GET_EXTDATA(x) ((x)->extdata)
6424#define DUK_HSTRING_GET_DATA(x) \
6425 (DUK_HSTRING_HAS_EXTDATA((x)) ? DUK_HSTRING_GET_EXTDATA((const duk_hstring_external *) (x)) : \
6426 ((const duk_uint8_t *) ((x) + 1)))
6428#define DUK_HSTRING_GET_DATA(x) ((const duk_uint8_t *) ((x) + 1))
6431#define DUK_HSTRING_GET_DATA_END(x) (DUK_HSTRING_GET_DATA((x)) + (x)->blen)
6436#define DUK_HSTRING_NO_ARRAY_INDEX (0xffffffffUL)
6438#if defined(DUK_USE_HSTRING_ARRIDX)
6439#define DUK_HSTRING_GET_ARRIDX_FAST(h) ((h)->arridx)
6440#define DUK_HSTRING_GET_ARRIDX_SLOW(h) ((h)->arridx)
6445#define DUK_HSTRING_GET_ARRIDX_FAST(h) \
6446 (DUK_HSTRING_HAS_ARRIDX((h)) ? duk_js_to_arrayindex_hstring_fast_known((h)) : DUK_HSTRING_NO_ARRAY_INDEX)
6449#define DUK_HSTRING_GET_ARRIDX_SLOW(h) (duk_js_to_arrayindex_hstring_fast((h)))
6453#define DUK_SYMBOL_TYPE_HIDDEN 0
6454#define DUK_SYMBOL_TYPE_GLOBAL 1
6455#define DUK_SYMBOL_TYPE_LOCAL 2
6456#define DUK_SYMBOL_TYPE_WELLKNOWN 3
6459#if defined(DUK_USE_ASSERTIONS)
6461#define DUK_HSTRING_ASSERT_VALID(h) \
6463 duk_hstring_assert_valid((h)); \
6466#define DUK_HSTRING_ASSERT_VALID(h) \
6484#if defined(DUK_USE_STRHASH16)
6491#if defined(DUK_USE_HSTRING_ARRIDX)
6496#if defined(DUK_USE_STRLEN16)
6503#if defined(DUK_USE_STRLEN16)
6504#if defined(DUK_USE_HSTRING_CLEN)
6505 duk_uint16_t clen16;
6544#if !defined(DUK_USE_HSTRING_LAZY_CLEN)
6581#if !defined(DUK_HOBJECT_H_INCLUDED)
6582#define DUK_HOBJECT_H_INCLUDED
6591#define DUK_HOBJECT_FLAG_EXTENSIBLE DUK_HEAPHDR_USER_FLAG(0)
6592#define DUK_HOBJECT_FLAG_CONSTRUCTABLE DUK_HEAPHDR_USER_FLAG(1)
6593#define DUK_HOBJECT_FLAG_CALLABLE DUK_HEAPHDR_USER_FLAG(2)
6594#define DUK_HOBJECT_FLAG_BOUNDFUNC DUK_HEAPHDR_USER_FLAG(3)
6595#define DUK_HOBJECT_FLAG_COMPFUNC DUK_HEAPHDR_USER_FLAG(4)
6596#define DUK_HOBJECT_FLAG_NATFUNC DUK_HEAPHDR_USER_FLAG(5)
6597#define DUK_HOBJECT_FLAG_BUFOBJ DUK_HEAPHDR_USER_FLAG(6)
6598#define DUK_HOBJECT_FLAG_FASTREFS \
6599 DUK_HEAPHDR_USER_FLAG(7)
6600#define DUK_HOBJECT_FLAG_ARRAY_PART DUK_HEAPHDR_USER_FLAG(8)
6601#define DUK_HOBJECT_FLAG_STRICT DUK_HEAPHDR_USER_FLAG(9)
6602#define DUK_HOBJECT_FLAG_NOTAIL DUK_HEAPHDR_USER_FLAG(10)
6603#define DUK_HOBJECT_FLAG_NEWENV DUK_HEAPHDR_USER_FLAG(11)
6604#define DUK_HOBJECT_FLAG_NAMEBINDING \
6605 DUK_HEAPHDR_USER_FLAG( \
6607#define DUK_HOBJECT_FLAG_CREATEARGS DUK_HEAPHDR_USER_FLAG(13)
6608#define DUK_HOBJECT_FLAG_HAVE_FINALIZER DUK_HEAPHDR_USER_FLAG(14)
6609#define DUK_HOBJECT_FLAG_EXOTIC_ARRAY DUK_HEAPHDR_USER_FLAG(15)
6610#define DUK_HOBJECT_FLAG_EXOTIC_STRINGOBJ DUK_HEAPHDR_USER_FLAG(16)
6611#define DUK_HOBJECT_FLAG_EXOTIC_ARGUMENTS \
6612 DUK_HEAPHDR_USER_FLAG(17)
6613#define DUK_HOBJECT_FLAG_EXOTIC_PROXYOBJ DUK_HEAPHDR_USER_FLAG(18)
6614#define DUK_HOBJECT_FLAG_SPECIAL_CALL DUK_HEAPHDR_USER_FLAG(19)
6616#define DUK_HOBJECT_FLAG_CLASS_BASE DUK_HEAPHDR_USER_FLAG_NUMBER(20)
6617#define DUK_HOBJECT_FLAG_CLASS_BITS 5
6619#define DUK_HOBJECT_GET_CLASS_NUMBER(h) \
6620 DUK_HEAPHDR_GET_FLAG_RANGE(&(h)->hdr, DUK_HOBJECT_FLAG_CLASS_BASE, DUK_HOBJECT_FLAG_CLASS_BITS)
6621#define DUK_HOBJECT_SET_CLASS_NUMBER(h, v) \
6622 DUK_HEAPHDR_SET_FLAG_RANGE(&(h)->hdr, DUK_HOBJECT_FLAG_CLASS_BASE, DUK_HOBJECT_FLAG_CLASS_BITS, (v))
6624#define DUK_HOBJECT_GET_CLASS_MASK(h) \
6625 (1UL << DUK_HEAPHDR_GET_FLAG_RANGE(&(h)->hdr, DUK_HOBJECT_FLAG_CLASS_BASE, DUK_HOBJECT_FLAG_CLASS_BITS))
6632#define DUK_HOBJECT_CLASS_AS_FLAGS(v) (((duk_uint_t) (v)) << DUK_HOBJECT_FLAG_CLASS_BASE)
6635#define DUK_HOBJECT_CLASS_NONE 0
6636#define DUK_HOBJECT_CLASS_OBJECT 1
6637#define DUK_HOBJECT_CLASS_ARRAY 2
6638#define DUK_HOBJECT_CLASS_FUNCTION 3
6639#define DUK_HOBJECT_CLASS_ARGUMENTS 4
6640#define DUK_HOBJECT_CLASS_BOOLEAN 5
6641#define DUK_HOBJECT_CLASS_DATE 6
6642#define DUK_HOBJECT_CLASS_ERROR 7
6643#define DUK_HOBJECT_CLASS_JSON 8
6644#define DUK_HOBJECT_CLASS_MATH 9
6645#define DUK_HOBJECT_CLASS_NUMBER 10
6646#define DUK_HOBJECT_CLASS_REGEXP 11
6647#define DUK_HOBJECT_CLASS_STRING 12
6648#define DUK_HOBJECT_CLASS_GLOBAL 13
6649#define DUK_HOBJECT_CLASS_SYMBOL 14
6650#define DUK_HOBJECT_CLASS_OBJENV 15
6651#define DUK_HOBJECT_CLASS_DECENV 16
6652#define DUK_HOBJECT_CLASS_POINTER 17
6653#define DUK_HOBJECT_CLASS_THREAD 18
6654#define DUK_HOBJECT_CLASS_BUFOBJ_MIN 19
6655#define DUK_HOBJECT_CLASS_ARRAYBUFFER 19
6656#define DUK_HOBJECT_CLASS_DATAVIEW 20
6657#define DUK_HOBJECT_CLASS_INT8ARRAY 21
6658#define DUK_HOBJECT_CLASS_UINT8ARRAY 22
6659#define DUK_HOBJECT_CLASS_UINT8CLAMPEDARRAY 23
6660#define DUK_HOBJECT_CLASS_INT16ARRAY 24
6661#define DUK_HOBJECT_CLASS_UINT16ARRAY 25
6662#define DUK_HOBJECT_CLASS_INT32ARRAY 26
6663#define DUK_HOBJECT_CLASS_UINT32ARRAY 27
6664#define DUK_HOBJECT_CLASS_FLOAT32ARRAY 28
6665#define DUK_HOBJECT_CLASS_FLOAT64ARRAY 29
6666#define DUK_HOBJECT_CLASS_BUFOBJ_MAX 29
6667#define DUK_HOBJECT_CLASS_MAX 29
6670#define DUK_HOBJECT_CMASK_ALL ((1UL << (DUK_HOBJECT_CLASS_MAX + 1)) - 1UL)
6671#define DUK_HOBJECT_CMASK_NONE (1UL << DUK_HOBJECT_CLASS_NONE)
6672#define DUK_HOBJECT_CMASK_ARGUMENTS (1UL << DUK_HOBJECT_CLASS_ARGUMENTS)
6673#define DUK_HOBJECT_CMASK_ARRAY (1UL << DUK_HOBJECT_CLASS_ARRAY)
6674#define DUK_HOBJECT_CMASK_BOOLEAN (1UL << DUK_HOBJECT_CLASS_BOOLEAN)
6675#define DUK_HOBJECT_CMASK_DATE (1UL << DUK_HOBJECT_CLASS_DATE)
6676#define DUK_HOBJECT_CMASK_ERROR (1UL << DUK_HOBJECT_CLASS_ERROR)
6677#define DUK_HOBJECT_CMASK_FUNCTION (1UL << DUK_HOBJECT_CLASS_FUNCTION)
6678#define DUK_HOBJECT_CMASK_JSON (1UL << DUK_HOBJECT_CLASS_JSON)
6679#define DUK_HOBJECT_CMASK_MATH (1UL << DUK_HOBJECT_CLASS_MATH)
6680#define DUK_HOBJECT_CMASK_NUMBER (1UL << DUK_HOBJECT_CLASS_NUMBER)
6681#define DUK_HOBJECT_CMASK_OBJECT (1UL << DUK_HOBJECT_CLASS_OBJECT)
6682#define DUK_HOBJECT_CMASK_REGEXP (1UL << DUK_HOBJECT_CLASS_REGEXP)
6683#define DUK_HOBJECT_CMASK_STRING (1UL << DUK_HOBJECT_CLASS_STRING)
6684#define DUK_HOBJECT_CMASK_GLOBAL (1UL << DUK_HOBJECT_CLASS_GLOBAL)
6685#define DUK_HOBJECT_CMASK_SYMBOL (1UL << DUK_HOBJECT_CLASS_SYMBOL)
6686#define DUK_HOBJECT_CMASK_OBJENV (1UL << DUK_HOBJECT_CLASS_OBJENV)
6687#define DUK_HOBJECT_CMASK_DECENV (1UL << DUK_HOBJECT_CLASS_DECENV)
6688#define DUK_HOBJECT_CMASK_POINTER (1UL << DUK_HOBJECT_CLASS_POINTER)
6689#define DUK_HOBJECT_CMASK_ARRAYBUFFER (1UL << DUK_HOBJECT_CLASS_ARRAYBUFFER)
6690#define DUK_HOBJECT_CMASK_DATAVIEW (1UL << DUK_HOBJECT_CLASS_DATAVIEW)
6691#define DUK_HOBJECT_CMASK_INT8ARRAY (1UL << DUK_HOBJECT_CLASS_INT8ARRAY)
6692#define DUK_HOBJECT_CMASK_UINT8ARRAY (1UL << DUK_HOBJECT_CLASS_UINT8ARRAY)
6693#define DUK_HOBJECT_CMASK_UINT8CLAMPEDARRAY (1UL << DUK_HOBJECT_CLASS_UINT8CLAMPEDARRAY)
6694#define DUK_HOBJECT_CMASK_INT16ARRAY (1UL << DUK_HOBJECT_CLASS_INT16ARRAY)
6695#define DUK_HOBJECT_CMASK_UINT16ARRAY (1UL << DUK_HOBJECT_CLASS_UINT16ARRAY)
6696#define DUK_HOBJECT_CMASK_INT32ARRAY (1UL << DUK_HOBJECT_CLASS_INT32ARRAY)
6697#define DUK_HOBJECT_CMASK_UINT32ARRAY (1UL << DUK_HOBJECT_CLASS_UINT32ARRAY)
6698#define DUK_HOBJECT_CMASK_FLOAT32ARRAY (1UL << DUK_HOBJECT_CLASS_FLOAT32ARRAY)
6699#define DUK_HOBJECT_CMASK_FLOAT64ARRAY (1UL << DUK_HOBJECT_CLASS_FLOAT64ARRAY)
6701#define DUK_HOBJECT_CMASK_ALL_BUFOBJS \
6702 (DUK_HOBJECT_CMASK_ARRAYBUFFER | DUK_HOBJECT_CMASK_DATAVIEW | DUK_HOBJECT_CMASK_INT8ARRAY | DUK_HOBJECT_CMASK_UINT8ARRAY | \
6703 DUK_HOBJECT_CMASK_UINT8CLAMPEDARRAY | DUK_HOBJECT_CMASK_INT16ARRAY | DUK_HOBJECT_CMASK_UINT16ARRAY | \
6704 DUK_HOBJECT_CMASK_INT32ARRAY | DUK_HOBJECT_CMASK_UINT32ARRAY | DUK_HOBJECT_CMASK_FLOAT32ARRAY | \
6705 DUK_HOBJECT_CMASK_FLOAT64ARRAY)
6707#define DUK_HOBJECT_IS_OBJENV(h) (DUK_HOBJECT_GET_CLASS_NUMBER((h)) == DUK_HOBJECT_CLASS_OBJENV)
6708#define DUK_HOBJECT_IS_DECENV(h) (DUK_HOBJECT_GET_CLASS_NUMBER((h)) == DUK_HOBJECT_CLASS_DECENV)
6709#define DUK_HOBJECT_IS_ENV(h) (DUK_HOBJECT_IS_OBJENV((h)) || DUK_HOBJECT_IS_DECENV((h)))
6710#define DUK_HOBJECT_IS_ARRAY(h) DUK_HOBJECT_HAS_EXOTIC_ARRAY((h))
6711#define DUK_HOBJECT_IS_BOUNDFUNC(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BOUNDFUNC)
6712#define DUK_HOBJECT_IS_COMPFUNC(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_COMPFUNC)
6713#define DUK_HOBJECT_IS_NATFUNC(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NATFUNC)
6714#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
6715#define DUK_HOBJECT_IS_BUFOBJ(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BUFOBJ)
6717#define DUK_HOBJECT_IS_BUFOBJ(h) 0
6719#define DUK_HOBJECT_IS_THREAD(h) (DUK_HOBJECT_GET_CLASS_NUMBER((h)) == DUK_HOBJECT_CLASS_THREAD)
6720#if defined(DUK_USE_ES6_PROXY)
6721#define DUK_HOBJECT_IS_PROXY(h) DUK_HOBJECT_HAS_EXOTIC_PROXYOBJ((h))
6723#define DUK_HOBJECT_IS_PROXY(h) 0
6726#define DUK_HOBJECT_IS_NONBOUND_FUNCTION(h) \
6727 DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_COMPFUNC | DUK_HOBJECT_FLAG_NATFUNC)
6729#define DUK_HOBJECT_IS_FUNCTION(h) \
6730 DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BOUNDFUNC | DUK_HOBJECT_FLAG_COMPFUNC | DUK_HOBJECT_FLAG_NATFUNC)
6732#define DUK_HOBJECT_IS_CALLABLE(h) DUK_HOBJECT_HAS_CALLABLE((h))
6735#define DUK_HOBJECT_EXOTIC_BEHAVIOR_FLAGS \
6736 (DUK_HOBJECT_FLAG_EXOTIC_ARRAY | DUK_HOBJECT_FLAG_EXOTIC_ARGUMENTS | DUK_HOBJECT_FLAG_EXOTIC_STRINGOBJ | \
6737 DUK_HOBJECT_FLAG_BUFOBJ | DUK_HOBJECT_FLAG_EXOTIC_PROXYOBJ)
6738#define DUK_HOBJECT_HAS_EXOTIC_BEHAVIOR(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_EXOTIC_BEHAVIOR_FLAGS)
6741#define DUK_HOBJECT_VIRTUAL_PROPERTY_FLAGS \
6742 (DUK_HOBJECT_FLAG_EXOTIC_ARRAY | DUK_HOBJECT_FLAG_EXOTIC_STRINGOBJ | DUK_HOBJECT_FLAG_BUFOBJ)
6743#define DUK_HOBJECT_HAS_VIRTUAL_PROPERTIES(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_VIRTUAL_PROPERTY_FLAGS)
6745#define DUK_HOBJECT_HAS_EXTENSIBLE(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXTENSIBLE)
6746#define DUK_HOBJECT_HAS_CONSTRUCTABLE(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CONSTRUCTABLE)
6747#define DUK_HOBJECT_HAS_CALLABLE(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CALLABLE)
6748#define DUK_HOBJECT_HAS_BOUNDFUNC(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BOUNDFUNC)
6749#define DUK_HOBJECT_HAS_COMPFUNC(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_COMPFUNC)
6750#define DUK_HOBJECT_HAS_NATFUNC(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NATFUNC)
6751#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
6752#define DUK_HOBJECT_HAS_BUFOBJ(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BUFOBJ)
6754#define DUK_HOBJECT_HAS_BUFOBJ(h) 0
6756#define DUK_HOBJECT_HAS_FASTREFS(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_FASTREFS)
6757#define DUK_HOBJECT_HAS_ARRAY_PART(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_ARRAY_PART)
6758#define DUK_HOBJECT_HAS_STRICT(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_STRICT)
6759#define DUK_HOBJECT_HAS_NOTAIL(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NOTAIL)
6760#define DUK_HOBJECT_HAS_NEWENV(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NEWENV)
6761#define DUK_HOBJECT_HAS_NAMEBINDING(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NAMEBINDING)
6762#define DUK_HOBJECT_HAS_CREATEARGS(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CREATEARGS)
6763#define DUK_HOBJECT_HAS_HAVE_FINALIZER(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_HAVE_FINALIZER)
6764#define DUK_HOBJECT_HAS_EXOTIC_ARRAY(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_ARRAY)
6765#define DUK_HOBJECT_HAS_EXOTIC_STRINGOBJ(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_STRINGOBJ)
6766#define DUK_HOBJECT_HAS_EXOTIC_ARGUMENTS(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_ARGUMENTS)
6767#if defined(DUK_USE_ES6_PROXY)
6768#define DUK_HOBJECT_HAS_EXOTIC_PROXYOBJ(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_PROXYOBJ)
6770#define DUK_HOBJECT_HAS_EXOTIC_PROXYOBJ(h) 0
6772#define DUK_HOBJECT_HAS_SPECIAL_CALL(h) DUK_HEAPHDR_CHECK_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_SPECIAL_CALL)
6774#define DUK_HOBJECT_SET_EXTENSIBLE(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXTENSIBLE)
6775#define DUK_HOBJECT_SET_CONSTRUCTABLE(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CONSTRUCTABLE)
6776#define DUK_HOBJECT_SET_CALLABLE(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CALLABLE)
6777#define DUK_HOBJECT_SET_BOUNDFUNC(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BOUNDFUNC)
6778#define DUK_HOBJECT_SET_COMPFUNC(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_COMPFUNC)
6779#define DUK_HOBJECT_SET_NATFUNC(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NATFUNC)
6780#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
6781#define DUK_HOBJECT_SET_BUFOBJ(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BUFOBJ)
6783#define DUK_HOBJECT_SET_FASTREFS(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_FASTREFS)
6784#define DUK_HOBJECT_SET_ARRAY_PART(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_ARRAY_PART)
6785#define DUK_HOBJECT_SET_STRICT(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_STRICT)
6786#define DUK_HOBJECT_SET_NOTAIL(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NOTAIL)
6787#define DUK_HOBJECT_SET_NEWENV(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NEWENV)
6788#define DUK_HOBJECT_SET_NAMEBINDING(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NAMEBINDING)
6789#define DUK_HOBJECT_SET_CREATEARGS(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CREATEARGS)
6790#define DUK_HOBJECT_SET_HAVE_FINALIZER(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_HAVE_FINALIZER)
6791#define DUK_HOBJECT_SET_EXOTIC_ARRAY(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_ARRAY)
6792#define DUK_HOBJECT_SET_EXOTIC_STRINGOBJ(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_STRINGOBJ)
6793#define DUK_HOBJECT_SET_EXOTIC_ARGUMENTS(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_ARGUMENTS)
6794#if defined(DUK_USE_ES6_PROXY)
6795#define DUK_HOBJECT_SET_EXOTIC_PROXYOBJ(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_PROXYOBJ)
6797#define DUK_HOBJECT_SET_SPECIAL_CALL(h) DUK_HEAPHDR_SET_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_SPECIAL_CALL)
6799#define DUK_HOBJECT_CLEAR_EXTENSIBLE(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXTENSIBLE)
6800#define DUK_HOBJECT_CLEAR_CONSTRUCTABLE(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CONSTRUCTABLE)
6801#define DUK_HOBJECT_CLEAR_CALLABLE(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CALLABLE)
6802#define DUK_HOBJECT_CLEAR_BOUNDFUNC(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BOUNDFUNC)
6803#define DUK_HOBJECT_CLEAR_COMPFUNC(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_COMPFUNC)
6804#define DUK_HOBJECT_CLEAR_NATFUNC(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NATFUNC)
6805#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
6806#define DUK_HOBJECT_CLEAR_BUFOBJ(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_BUFOBJ)
6808#define DUK_HOBJECT_CLEAR_FASTREFS(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_FASTREFS)
6809#define DUK_HOBJECT_CLEAR_ARRAY_PART(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_ARRAY_PART)
6810#define DUK_HOBJECT_CLEAR_STRICT(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_STRICT)
6811#define DUK_HOBJECT_CLEAR_NOTAIL(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NOTAIL)
6812#define DUK_HOBJECT_CLEAR_NEWENV(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NEWENV)
6813#define DUK_HOBJECT_CLEAR_NAMEBINDING(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_NAMEBINDING)
6814#define DUK_HOBJECT_CLEAR_CREATEARGS(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_CREATEARGS)
6815#define DUK_HOBJECT_CLEAR_HAVE_FINALIZER(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_HAVE_FINALIZER)
6816#define DUK_HOBJECT_CLEAR_EXOTIC_ARRAY(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_ARRAY)
6817#define DUK_HOBJECT_CLEAR_EXOTIC_STRINGOBJ(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_STRINGOBJ)
6818#define DUK_HOBJECT_CLEAR_EXOTIC_ARGUMENTS(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_ARGUMENTS)
6819#if defined(DUK_USE_ES6_PROXY)
6820#define DUK_HOBJECT_CLEAR_EXOTIC_PROXYOBJ(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_EXOTIC_PROXYOBJ)
6822#define DUK_HOBJECT_CLEAR_SPECIAL_CALL(h) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(h)->hdr, DUK_HOBJECT_FLAG_SPECIAL_CALL)
6828#define DUK_HOBJECT_PROHIBITS_FASTREFS(h) \
6829 (DUK_HOBJECT_IS_COMPFUNC((h)) || DUK_HOBJECT_IS_DECENV((h)) || DUK_HOBJECT_IS_OBJENV((h)) || DUK_HOBJECT_IS_BUFOBJ((h)) || \
6830 DUK_HOBJECT_IS_THREAD((h)) || DUK_HOBJECT_IS_PROXY((h)) || DUK_HOBJECT_IS_BOUNDFUNC((h)))
6831#define DUK_HOBJECT_ALLOWS_FASTREFS(h) (!DUK_HOBJECT_PROHIBITS_FASTREFS((h)))
6836#define DUK_PROPDESC_FLAG_WRITABLE (1U << 0)
6837#define DUK_PROPDESC_FLAG_ENUMERABLE (1U << 1)
6838#define DUK_PROPDESC_FLAG_CONFIGURABLE (1U << 2)
6839#define DUK_PROPDESC_FLAG_ACCESSOR (1U << 3)
6840#define DUK_PROPDESC_FLAG_VIRTUAL \
6844#define DUK_PROPDESC_FLAGS_MASK \
6845 (DUK_PROPDESC_FLAG_WRITABLE | DUK_PROPDESC_FLAG_ENUMERABLE | DUK_PROPDESC_FLAG_CONFIGURABLE | DUK_PROPDESC_FLAG_ACCESSOR)
6850#define DUK_PROPDESC_FLAG_NO_OVERWRITE (1U << 4)
6853#define DUK_PROPDESC_FLAGS_NONE 0
6854#define DUK_PROPDESC_FLAGS_W (DUK_PROPDESC_FLAG_WRITABLE)
6855#define DUK_PROPDESC_FLAGS_E (DUK_PROPDESC_FLAG_ENUMERABLE)
6856#define DUK_PROPDESC_FLAGS_C (DUK_PROPDESC_FLAG_CONFIGURABLE)
6857#define DUK_PROPDESC_FLAGS_WE (DUK_PROPDESC_FLAG_WRITABLE | DUK_PROPDESC_FLAG_ENUMERABLE)
6858#define DUK_PROPDESC_FLAGS_WC (DUK_PROPDESC_FLAG_WRITABLE | DUK_PROPDESC_FLAG_CONFIGURABLE)
6859#define DUK_PROPDESC_FLAGS_EC (DUK_PROPDESC_FLAG_ENUMERABLE | DUK_PROPDESC_FLAG_CONFIGURABLE)
6860#define DUK_PROPDESC_FLAGS_WEC (DUK_PROPDESC_FLAG_WRITABLE | DUK_PROPDESC_FLAG_ENUMERABLE | DUK_PROPDESC_FLAG_CONFIGURABLE)
6863#define DUK_GETDESC_FLAG_PUSH_VALUE (1U << 0)
6864#define DUK_GETDESC_FLAG_IGNORE_PROTOLOOP (1U << 1)
6872#if defined(DUK_USE_ASSERTIONS)
6874#define DUK_HOBJECT_ASSERT_VALID(h) \
6876 duk_hobject_assert_valid((h)); \
6879#define DUK_HOBJECT_ASSERT_VALID(h) \
6888#if defined(DUK_USE_HEAPPTR16)
6889#define DUK_HOBJECT_GET_PROPS(heap, h) ((duk_uint8_t *) DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, ((duk_heaphdr *) (h))->h_extra16))
6890#define DUK_HOBJECT_SET_PROPS(heap, h, x) \
6892 ((duk_heaphdr *) (h))->h_extra16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (x)); \
6895#define DUK_HOBJECT_GET_PROPS(heap, h) ((h)->props)
6896#define DUK_HOBJECT_SET_PROPS(heap, h, x) \
6898 (h)->props = (duk_uint8_t *) (x); \
6902#if defined(DUK_USE_HOBJECT_LAYOUT_1)
6904#define DUK_HOBJECT_E_GET_KEY_BASE(heap, h) ((duk_hstring **) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h))))
6905#define DUK_HOBJECT_E_GET_VALUE_BASE(heap, h) \
6906 ((duk_propvalue *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + DUK_HOBJECT_GET_ESIZE((h)) * sizeof(duk_hstring *)))
6907#define DUK_HOBJECT_E_GET_FLAGS_BASE(heap, h) \
6908 ((duk_uint8_t *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + \
6909 DUK_HOBJECT_GET_ESIZE((h)) * (sizeof(duk_hstring *) + sizeof(duk_propvalue))))
6910#define DUK_HOBJECT_A_GET_BASE(heap, h) \
6911 ((duk_tval *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + \
6912 DUK_HOBJECT_GET_ESIZE((h)) * \
6913 (sizeof(duk_hstring *) + sizeof(duk_propvalue) + sizeof(duk_uint8_t))))
6914#define DUK_HOBJECT_H_GET_BASE(heap, h) \
6915 ((duk_uint32_t *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + \
6916 DUK_HOBJECT_GET_ESIZE((h)) * \
6917 (sizeof(duk_hstring *) + sizeof(duk_propvalue) + sizeof(duk_uint8_t)) + \
6918 DUK_HOBJECT_GET_ASIZE((h)) * sizeof(duk_tval)))
6919#define DUK_HOBJECT_P_COMPUTE_SIZE(n_ent, n_arr, n_hash) \
6920 ((n_ent) * (sizeof(duk_hstring *) + sizeof(duk_propvalue) + sizeof(duk_uint8_t)) + (n_arr) * sizeof(duk_tval) + \
6921 (n_hash) * sizeof(duk_uint32_t))
6922#define DUK_HOBJECT_P_SET_REALLOC_PTRS(p_base, set_e_k, set_e_pv, set_e_f, set_a, set_h, n_ent, n_arr, n_hash) \
6924 (set_e_k) = (duk_hstring **) (void *) (p_base); \
6925 (set_e_pv) = (duk_propvalue *) (void *) ((set_e_k) + (n_ent)); \
6926 (set_e_f) = (duk_uint8_t *) (void *) ((set_e_pv) + (n_ent)); \
6927 (set_a) = (duk_tval *) (void *) ((set_e_f) + (n_ent)); \
6928 (set_h) = (duk_uint32_t *) (void *) ((set_a) + (n_arr)); \
6930#elif defined(DUK_USE_HOBJECT_LAYOUT_2)
6932#if (DUK_USE_ALIGN_BY == 4)
6933#define DUK_HOBJECT_E_FLAG_PADDING(e_sz) ((4 - (e_sz)) & 0x03)
6934#elif (DUK_USE_ALIGN_BY == 8)
6935#define DUK_HOBJECT_E_FLAG_PADDING(e_sz) ((8 - (e_sz)) & 0x07)
6936#elif (DUK_USE_ALIGN_BY == 1)
6937#define DUK_HOBJECT_E_FLAG_PADDING(e_sz) 0
6939#error invalid DUK_USE_ALIGN_BY
6941#define DUK_HOBJECT_E_GET_KEY_BASE(heap, h) \
6942 ((duk_hstring **) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + DUK_HOBJECT_GET_ESIZE((h)) * sizeof(duk_propvalue)))
6943#define DUK_HOBJECT_E_GET_VALUE_BASE(heap, h) ((duk_propvalue *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h))))
6944#define DUK_HOBJECT_E_GET_FLAGS_BASE(heap, h) \
6945 ((duk_uint8_t *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + \
6946 DUK_HOBJECT_GET_ESIZE((h)) * (sizeof(duk_hstring *) + sizeof(duk_propvalue))))
6947#define DUK_HOBJECT_A_GET_BASE(heap, h) \
6948 ((duk_tval *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + \
6949 DUK_HOBJECT_GET_ESIZE((h)) * \
6950 (sizeof(duk_hstring *) + sizeof(duk_propvalue) + sizeof(duk_uint8_t)) + \
6951 DUK_HOBJECT_E_FLAG_PADDING(DUK_HOBJECT_GET_ESIZE((h)))))
6952#define DUK_HOBJECT_H_GET_BASE(heap, h) \
6953 ((duk_uint32_t *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + \
6954 DUK_HOBJECT_GET_ESIZE((h)) * \
6955 (sizeof(duk_hstring *) + sizeof(duk_propvalue) + sizeof(duk_uint8_t)) + \
6956 DUK_HOBJECT_E_FLAG_PADDING(DUK_HOBJECT_GET_ESIZE((h))) + \
6957 DUK_HOBJECT_GET_ASIZE((h)) * sizeof(duk_tval)))
6958#define DUK_HOBJECT_P_COMPUTE_SIZE(n_ent, n_arr, n_hash) \
6959 ((n_ent) * (sizeof(duk_hstring *) + sizeof(duk_propvalue) + sizeof(duk_uint8_t)) + DUK_HOBJECT_E_FLAG_PADDING((n_ent)) + \
6960 (n_arr) * sizeof(duk_tval) + (n_hash) * sizeof(duk_uint32_t))
6961#define DUK_HOBJECT_P_SET_REALLOC_PTRS(p_base, set_e_k, set_e_pv, set_e_f, set_a, set_h, n_ent, n_arr, n_hash) \
6963 (set_e_pv) = (duk_propvalue *) (void *) (p_base); \
6964 (set_e_k) = (duk_hstring **) (void *) ((set_e_pv) + (n_ent)); \
6965 (set_e_f) = (duk_uint8_t *) (void *) ((set_e_k) + (n_ent)); \
6966 (set_a) = (duk_tval *) (void *) (((duk_uint8_t *) (set_e_f)) + sizeof(duk_uint8_t) * (n_ent) + \
6967 DUK_HOBJECT_E_FLAG_PADDING((n_ent))); \
6968 (set_h) = (duk_uint32_t *) (void *) ((set_a) + (n_arr)); \
6970#elif defined(DUK_USE_HOBJECT_LAYOUT_3)
6972#define DUK_HOBJECT_E_GET_KEY_BASE(heap, h) \
6973 ((duk_hstring **) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + DUK_HOBJECT_GET_ESIZE((h)) * sizeof(duk_propvalue) + \
6974 DUK_HOBJECT_GET_ASIZE((h)) * sizeof(duk_tval)))
6975#define DUK_HOBJECT_E_GET_VALUE_BASE(heap, h) ((duk_propvalue *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h))))
6976#define DUK_HOBJECT_E_GET_FLAGS_BASE(heap, h) \
6977 ((duk_uint8_t *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + \
6978 DUK_HOBJECT_GET_ESIZE((h)) * (sizeof(duk_propvalue) + sizeof(duk_hstring *)) + \
6979 DUK_HOBJECT_GET_ASIZE((h)) * sizeof(duk_tval) + \
6980 DUK_HOBJECT_GET_HSIZE((h)) * sizeof(duk_uint32_t)))
6981#define DUK_HOBJECT_A_GET_BASE(heap, h) \
6982 ((duk_tval *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + DUK_HOBJECT_GET_ESIZE((h)) * sizeof(duk_propvalue)))
6983#define DUK_HOBJECT_H_GET_BASE(heap, h) \
6984 ((duk_uint32_t *) (void *) (DUK_HOBJECT_GET_PROPS((heap), (h)) + \
6985 DUK_HOBJECT_GET_ESIZE((h)) * (sizeof(duk_propvalue) + sizeof(duk_hstring *)) + \
6986 DUK_HOBJECT_GET_ASIZE((h)) * sizeof(duk_tval)))
6987#define DUK_HOBJECT_P_COMPUTE_SIZE(n_ent, n_arr, n_hash) \
6988 ((n_ent) * (sizeof(duk_propvalue) + sizeof(duk_hstring *) + sizeof(duk_uint8_t)) + (n_arr) * sizeof(duk_tval) + \
6989 (n_hash) * sizeof(duk_uint32_t))
6990#define DUK_HOBJECT_P_SET_REALLOC_PTRS(p_base, set_e_k, set_e_pv, set_e_f, set_a, set_h, n_ent, n_arr, n_hash) \
6992 (set_e_pv) = (duk_propvalue *) (void *) (p_base); \
6993 (set_a) = (duk_tval *) (void *) ((set_e_pv) + (n_ent)); \
6994 (set_e_k) = (duk_hstring **) (void *) ((set_a) + (n_arr)); \
6995 (set_h) = (duk_uint32_t *) (void *) ((set_e_k) + (n_ent)); \
6996 (set_e_f) = (duk_uint8_t *) (void *) ((set_h) + (n_hash)); \
6999#error invalid hobject layout defines
7002#define DUK_HOBJECT_P_ALLOC_SIZE(h) \
7003 DUK_HOBJECT_P_COMPUTE_SIZE(DUK_HOBJECT_GET_ESIZE((h)), DUK_HOBJECT_GET_ASIZE((h)), DUK_HOBJECT_GET_HSIZE((h)))
7005#define DUK_HOBJECT_E_GET_KEY(heap, h, i) (DUK_HOBJECT_E_GET_KEY_BASE((heap), (h))[(i)])
7006#define DUK_HOBJECT_E_GET_KEY_PTR(heap, h, i) (&DUK_HOBJECT_E_GET_KEY_BASE((heap), (h))[(i)])
7007#define DUK_HOBJECT_E_GET_VALUE(heap, h, i) (DUK_HOBJECT_E_GET_VALUE_BASE((heap), (h))[(i)])
7008#define DUK_HOBJECT_E_GET_VALUE_PTR(heap, h, i) (&DUK_HOBJECT_E_GET_VALUE_BASE((heap), (h))[(i)])
7009#define DUK_HOBJECT_E_GET_VALUE_TVAL(heap, h, i) (DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).v)
7010#define DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(heap, h, i) (&DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).v)
7011#define DUK_HOBJECT_E_GET_VALUE_GETTER(heap, h, i) (DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).a.get)
7012#define DUK_HOBJECT_E_GET_VALUE_GETTER_PTR(heap, h, i) (&DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).a.get)
7013#define DUK_HOBJECT_E_GET_VALUE_SETTER(heap, h, i) (DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).a.set)
7014#define DUK_HOBJECT_E_GET_VALUE_SETTER_PTR(heap, h, i) (&DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).a.set)
7015#define DUK_HOBJECT_E_GET_FLAGS(heap, h, i) (DUK_HOBJECT_E_GET_FLAGS_BASE((heap), (h))[(i)])
7016#define DUK_HOBJECT_E_GET_FLAGS_PTR(heap, h, i) (&DUK_HOBJECT_E_GET_FLAGS_BASE((heap), (h))[(i)])
7017#define DUK_HOBJECT_A_GET_VALUE(heap, h, i) (DUK_HOBJECT_A_GET_BASE((heap), (h))[(i)])
7018#define DUK_HOBJECT_A_GET_VALUE_PTR(heap, h, i) (&DUK_HOBJECT_A_GET_BASE((heap), (h))[(i)])
7019#define DUK_HOBJECT_H_GET_INDEX(heap, h, i) (DUK_HOBJECT_H_GET_BASE((heap), (h))[(i)])
7020#define DUK_HOBJECT_H_GET_INDEX_PTR(heap, h, i) (&DUK_HOBJECT_H_GET_BASE((heap), (h))[(i)])
7022#define DUK_HOBJECT_E_SET_KEY(heap, h, i, k) \
7024 DUK_HOBJECT_E_GET_KEY((heap), (h), (i)) = (k); \
7026#define DUK_HOBJECT_E_SET_VALUE(heap, h, i, v) \
7028 DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)) = (v); \
7030#define DUK_HOBJECT_E_SET_VALUE_TVAL(heap, h, i, v) \
7032 DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).v = (v); \
7034#define DUK_HOBJECT_E_SET_VALUE_GETTER(heap, h, i, v) \
7036 DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).a.get = (v); \
7038#define DUK_HOBJECT_E_SET_VALUE_SETTER(heap, h, i, v) \
7040 DUK_HOBJECT_E_GET_VALUE((heap), (h), (i)).a.set = (v); \
7042#define DUK_HOBJECT_E_SET_FLAGS(heap, h, i, f) \
7044 DUK_HOBJECT_E_GET_FLAGS((heap), (h), (i)) = (duk_uint8_t) (f); \
7046#define DUK_HOBJECT_A_SET_VALUE(heap, h, i, v) \
7048 DUK_HOBJECT_A_GET_VALUE((heap), (h), (i)) = (v); \
7050#define DUK_HOBJECT_A_SET_VALUE_TVAL(heap, h, i, v) DUK_HOBJECT_A_SET_VALUE((heap), (h), (i), (v))
7051#define DUK_HOBJECT_H_SET_INDEX(heap, h, i, v) \
7053 DUK_HOBJECT_H_GET_INDEX((heap), (h), (i)) = (v); \
7056#define DUK_HOBJECT_E_SET_FLAG_BITS(heap, h, i, mask) \
7058 DUK_HOBJECT_E_GET_FLAGS_BASE((heap), (h))[(i)] |= (mask); \
7061#define DUK_HOBJECT_E_CLEAR_FLAG_BITS(heap, h, i, mask) \
7063 DUK_HOBJECT_E_GET_FLAGS_BASE((heap), (h))[(i)] &= ~(mask); \
7066#define DUK_HOBJECT_E_SLOT_IS_WRITABLE(heap, h, i) ((DUK_HOBJECT_E_GET_FLAGS((heap), (h), (i)) & DUK_PROPDESC_FLAG_WRITABLE) != 0)
7067#define DUK_HOBJECT_E_SLOT_IS_ENUMERABLE(heap, h, i) \
7068 ((DUK_HOBJECT_E_GET_FLAGS((heap), (h), (i)) & DUK_PROPDESC_FLAG_ENUMERABLE) != 0)
7069#define DUK_HOBJECT_E_SLOT_IS_CONFIGURABLE(heap, h, i) \
7070 ((DUK_HOBJECT_E_GET_FLAGS((heap), (h), (i)) & DUK_PROPDESC_FLAG_CONFIGURABLE) != 0)
7071#define DUK_HOBJECT_E_SLOT_IS_ACCESSOR(heap, h, i) ((DUK_HOBJECT_E_GET_FLAGS((heap), (h), (i)) & DUK_PROPDESC_FLAG_ACCESSOR) != 0)
7073#define DUK_HOBJECT_E_SLOT_SET_WRITABLE(heap, h, i) DUK_HOBJECT_E_SET_FLAG_BITS((heap), (h), (i), DUK_PROPDESC_FLAG_WRITABLE)
7074#define DUK_HOBJECT_E_SLOT_SET_ENUMERABLE(heap, h, i) DUK_HOBJECT_E_SET_FLAG_BITS((heap), (h), (i), DUK_PROPDESC_FLAG_ENUMERABLE)
7075#define DUK_HOBJECT_E_SLOT_SET_CONFIGURABLE(heap, h, i) \
7076 DUK_HOBJECT_E_SET_FLAG_BITS((heap), (h), (i), DUK_PROPDESC_FLAG_CONFIGURABLE)
7077#define DUK_HOBJECT_E_SLOT_SET_ACCESSOR(heap, h, i) DUK_HOBJECT_E_SET_FLAG_BITS((heap), (h), (i), DUK_PROPDESC_FLAG_ACCESSOR)
7079#define DUK_HOBJECT_E_SLOT_CLEAR_WRITABLE(heap, h, i) DUK_HOBJECT_E_CLEAR_FLAG_BITS((heap), (h), (i), DUK_PROPDESC_FLAG_WRITABLE)
7080#define DUK_HOBJECT_E_SLOT_CLEAR_ENUMERABLE(heap, h, i) \
7081 DUK_HOBJECT_E_CLEAR_FLAG_BITS((heap), (h), (i), DUK_PROPDESC_FLAG_ENUMERABLE)
7082#define DUK_HOBJECT_E_SLOT_CLEAR_CONFIGURABLE(heap, h, i) \
7083 DUK_HOBJECT_E_CLEAR_FLAG_BITS((heap), (h), (i), DUK_PROPDESC_FLAG_CONFIGURABLE)
7084#define DUK_HOBJECT_E_SLOT_CLEAR_ACCESSOR(heap, h, i) DUK_HOBJECT_E_CLEAR_FLAG_BITS((heap), (h), (i), DUK_PROPDESC_FLAG_ACCESSOR)
7086#define DUK_PROPDESC_IS_WRITABLE(p) (((p)->flags & DUK_PROPDESC_FLAG_WRITABLE) != 0)
7087#define DUK_PROPDESC_IS_ENUMERABLE(p) (((p)->flags & DUK_PROPDESC_FLAG_ENUMERABLE) != 0)
7088#define DUK_PROPDESC_IS_CONFIGURABLE(p) (((p)->flags & DUK_PROPDESC_FLAG_CONFIGURABLE) != 0)
7089#define DUK_PROPDESC_IS_ACCESSOR(p) (((p)->flags & DUK_PROPDESC_FLAG_ACCESSOR) != 0)
7091#define DUK_HOBJECT_HASHIDX_UNUSED 0xffffffffUL
7092#define DUK_HOBJECT_HASHIDX_DELETED 0xfffffffeUL
7098#if defined(DUK_USE_OBJSIZES16)
7099#define DUK_HOBJECT_GET_ESIZE(h) ((h)->e_size16)
7100#define DUK_HOBJECT_SET_ESIZE(h, v) \
7102 (h)->e_size16 = (v); \
7104#define DUK_HOBJECT_GET_ENEXT(h) ((h)->e_next16)
7105#define DUK_HOBJECT_SET_ENEXT(h, v) \
7107 (h)->e_next16 = (v); \
7109#define DUK_HOBJECT_POSTINC_ENEXT(h) ((h)->e_next16++)
7110#define DUK_HOBJECT_GET_ASIZE(h) ((h)->a_size16)
7111#define DUK_HOBJECT_SET_ASIZE(h, v) \
7113 (h)->a_size16 = (v); \
7115#if defined(DUK_USE_HOBJECT_HASH_PART)
7116#define DUK_HOBJECT_GET_HSIZE(h) ((h)->h_size16)
7117#define DUK_HOBJECT_SET_HSIZE(h, v) \
7119 (h)->h_size16 = (v); \
7122#define DUK_HOBJECT_GET_HSIZE(h) 0
7123#define DUK_HOBJECT_SET_HSIZE(h, v) \
7125 DUK_ASSERT((v) == 0); \
7129#define DUK_HOBJECT_GET_ESIZE(h) ((h)->e_size)
7130#define DUK_HOBJECT_SET_ESIZE(h, v) \
7132 (h)->e_size = (v); \
7134#define DUK_HOBJECT_GET_ENEXT(h) ((h)->e_next)
7135#define DUK_HOBJECT_SET_ENEXT(h, v) \
7137 (h)->e_next = (v); \
7139#define DUK_HOBJECT_POSTINC_ENEXT(h) ((h)->e_next++)
7140#define DUK_HOBJECT_GET_ASIZE(h) ((h)->a_size)
7141#define DUK_HOBJECT_SET_ASIZE(h, v) \
7143 (h)->a_size = (v); \
7145#if defined(DUK_USE_HOBJECT_HASH_PART)
7146#define DUK_HOBJECT_GET_HSIZE(h) ((h)->h_size)
7147#define DUK_HOBJECT_SET_HSIZE(h, v) \
7149 (h)->h_size = (v); \
7152#define DUK_HOBJECT_GET_HSIZE(h) 0
7153#define DUK_HOBJECT_SET_HSIZE(h, v) \
7155 DUK_ASSERT((v) == 0); \
7167#define DUK_HOBJECT_PROTOTYPE_CHAIN_SANITY 10000L
7174#define DUK_HOBJECT_CLASS_NUMBER_TO_STRIDX(n) duk_class_number_to_stridx[(n)]
7176#define DUK_HOBJECT_GET_CLASS_STRING(heap, h) \
7177 DUK_HEAP_GET_STRING((heap), DUK_HOBJECT_CLASS_NUMBER_TO_STRIDX(DUK_HOBJECT_GET_CLASS_NUMBER((h))))
7183#if defined(DUK_USE_HEAPPTR16)
7184#define DUK_HOBJECT_GET_PROTOTYPE(heap, h) ((duk_hobject *) DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (h)->prototype16))
7185#define DUK_HOBJECT_SET_PROTOTYPE(heap, h, x) \
7187 (h)->prototype16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (x)); \
7190#define DUK_HOBJECT_GET_PROTOTYPE(heap, h) ((h)->prototype)
7191#define DUK_HOBJECT_SET_PROTOTYPE(heap, h, x) \
7193 (h)->prototype = (x); \
7198#define DUK_HOBJECT_SET_PROTOTYPE_UPDREF(thr, h, p) duk_hobject_set_prototype_updref((thr), (h), (p))
7203#define DUK_HOBJECT_SET_PROTOTYPE_INIT_INCREF(thr, h, proto) \
7205 duk_hthread *duk__thr = (thr); \
7206 duk_hobject *duk__obj = (h); \
7207 duk_hobject *duk__proto = (proto); \
7208 DUK_UNREF(duk__thr); \
7209 DUK_ASSERT(DUK_HOBJECT_GET_PROTOTYPE(duk__thr->heap, duk__obj) == NULL); \
7210 DUK_HOBJECT_SET_PROTOTYPE(duk__thr->heap, duk__obj, duk__proto); \
7211 DUK_HOBJECT_INCREF_ALLOWNULL(duk__thr, duk__proto); \
7218#if defined(DUK_USE_HEAPPTR16)
7219#define DUK_HOBJECT_HAS_FINALIZER_FAST(heap, h) duk_hobject_has_finalizer_fast_raw((heap), (h))
7221#define DUK_HOBJECT_HAS_FINALIZER_FAST(heap, h) duk_hobject_has_finalizer_fast_raw((h))
7234#if defined(DUK_USE_OBJSIZES16)
7235#define DUK_HOBJECT_MAX_PROPERTIES 0x0000ffffUL
7237#define DUK_HOBJECT_MAX_PROPERTIES 0x3fffffffUL
7241#if (DUK_USE_ALIGN_BY == 4)
7242#define DUK_HOBJECT_ALIGN_TARGET 4
7243#elif (DUK_USE_ALIGN_BY == 8)
7244#define DUK_HOBJECT_ALIGN_TARGET 8
7245#elif (DUK_USE_ALIGN_BY == 1)
7246#define DUK_HOBJECT_ALIGN_TARGET 1
7248#error invalid DUK_USE_ALIGN_BY
7255#define DUK_PC2LINE_SKIP 64
7258#define DUK_PC2LINE_MAX_DIFF_LENGTH (((DUK_PC2LINE_SKIP - 1) * 35 + 7) / 8)
7359#if defined(DUK_USE_HEAPPTR16)
7368#if defined(DUK_USE_HEAPPTR16)
7369 duk_uint16_t prototype16;
7374#if defined(DUK_USE_OBJSIZES16)
7375 duk_uint16_t e_size16;
7376 duk_uint16_t e_next16;
7377 duk_uint16_t a_size16;
7378#if defined(DUK_USE_HOBJECT_HASH_PART)
7379 duk_uint16_t h_size16;
7385#if defined(DUK_USE_HOBJECT_HASH_PART)
7395#if !defined(DUK_SINGLE_FILE)
7410#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
7422 duk_uint32_t new_e_size,
7423 duk_uint32_t new_a_size,
7424 duk_uint32_t new_h_size,
7430 duk_uint32_t new_a_size);
7454#define DUK_DELPROP_FLAG_THROW (1U << 0)
7455#define DUK_DELPROP_FLAG_FORCE (1U << 1)
7467#if defined(DUK_USE_HEAPPTR16)
7505#if defined(DUK_USE_ES6_PROXY)
7519#if defined(DUK_USE_PC2LINE)
7530#if !defined(DUK_USE_OBJECT_BUILTIN)
7547#if !defined(DUK_HCOMPFUNC_H_INCLUDED)
7548#define DUK_HCOMPFUNC_H_INCLUDED
7556#if defined(DUK_USE_HEAPPTR16)
7557#define DUK_HCOMPFUNC_GET_DATA(heap, h) ((duk_hbuffer_fixed *) (void *) DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (h)->data16))
7558#define DUK_HCOMPFUNC_SET_DATA(heap, h, v) \
7560 (h)->data16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (v)); \
7562#define DUK_HCOMPFUNC_GET_FUNCS(heap, h) ((duk_hobject **) (void *) (DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (h)->funcs16)))
7563#define DUK_HCOMPFUNC_SET_FUNCS(heap, h, v) \
7565 (h)->funcs16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (v)); \
7567#define DUK_HCOMPFUNC_GET_BYTECODE(heap, h) ((duk_instr_t *) (void *) (DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (h)->bytecode16)))
7568#define DUK_HCOMPFUNC_SET_BYTECODE(heap, h, v) \
7570 (h)->bytecode16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (v)); \
7572#define DUK_HCOMPFUNC_GET_LEXENV(heap, h) ((duk_hobject *) (void *) (DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (h)->lex_env16)))
7573#define DUK_HCOMPFUNC_SET_LEXENV(heap, h, v) \
7575 (h)->lex_env16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (v)); \
7577#define DUK_HCOMPFUNC_GET_VARENV(heap, h) ((duk_hobject *) (void *) (DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (h)->var_env16)))
7578#define DUK_HCOMPFUNC_SET_VARENV(heap, h, v) \
7580 (h)->var_env16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (v)); \
7583#define DUK_HCOMPFUNC_GET_DATA(heap, h) ((duk_hbuffer_fixed *) (void *) (h)->data)
7584#define DUK_HCOMPFUNC_SET_DATA(heap, h, v) \
7586 (h)->data = (duk_hbuffer *) (v); \
7588#define DUK_HCOMPFUNC_GET_FUNCS(heap, h) ((h)->funcs)
7589#define DUK_HCOMPFUNC_SET_FUNCS(heap, h, v) \
7593#define DUK_HCOMPFUNC_GET_BYTECODE(heap, h) ((h)->bytecode)
7594#define DUK_HCOMPFUNC_SET_BYTECODE(heap, h, v) \
7596 (h)->bytecode = (v); \
7598#define DUK_HCOMPFUNC_GET_LEXENV(heap, h) ((h)->lex_env)
7599#define DUK_HCOMPFUNC_SET_LEXENV(heap, h, v) \
7601 (h)->lex_env = (v); \
7603#define DUK_HCOMPFUNC_GET_VARENV(heap, h) ((h)->var_env)
7604#define DUK_HCOMPFUNC_SET_VARENV(heap, h, v) \
7606 (h)->var_env = (v); \
7615#define DUK_HCOMPFUNC_GET_BUFFER_BASE(heap, h) DUK_HBUFFER_FIXED_GET_DATA_PTR((heap), DUK_HCOMPFUNC_GET_DATA((heap), (h)))
7617#define DUK_HCOMPFUNC_GET_CONSTS_BASE(heap, h) ((duk_tval *) (void *) DUK_HCOMPFUNC_GET_BUFFER_BASE((heap), (h)))
7619#define DUK_HCOMPFUNC_GET_FUNCS_BASE(heap, h) DUK_HCOMPFUNC_GET_FUNCS((heap), (h))
7621#define DUK_HCOMPFUNC_GET_CODE_BASE(heap, h) DUK_HCOMPFUNC_GET_BYTECODE((heap), (h))
7623#define DUK_HCOMPFUNC_GET_CONSTS_END(heap, h) ((duk_tval *) (void *) DUK_HCOMPFUNC_GET_FUNCS((heap), (h)))
7625#define DUK_HCOMPFUNC_GET_FUNCS_END(heap, h) ((duk_hobject **) (void *) DUK_HCOMPFUNC_GET_BYTECODE((heap), (h)))
7628#define DUK_HCOMPFUNC_GET_CODE_END(heap, h) \
7629 ((duk_instr_t *) (void *) (DUK_HBUFFER_FIXED_GET_DATA_PTR((heap), DUK_HCOMPFUNC_GET_DATA((heap), (h))) + \
7630 DUK_HBUFFER_GET_SIZE((duk_hbuffer *) DUK_HCOMPFUNC_GET_DATA((heap), h))))
7632#define DUK_HCOMPFUNC_GET_CONSTS_SIZE(heap, h) \
7633 ((duk_size_t) (((const duk_uint8_t *) DUK_HCOMPFUNC_GET_CONSTS_END((heap), (h))) - \
7634 ((const duk_uint8_t *) DUK_HCOMPFUNC_GET_CONSTS_BASE((heap), (h)))))
7636#define DUK_HCOMPFUNC_GET_FUNCS_SIZE(heap, h) \
7637 ((duk_size_t) (((const duk_uint8_t *) DUK_HCOMPFUNC_GET_FUNCS_END((heap), (h))) - \
7638 ((const duk_uint8_t *) DUK_HCOMPFUNC_GET_FUNCS_BASE((heap), (h)))))
7640#define DUK_HCOMPFUNC_GET_CODE_SIZE(heap, h) \
7641 ((duk_size_t) (((const duk_uint8_t *) DUK_HCOMPFUNC_GET_CODE_END((heap), (h))) - \
7642 ((const duk_uint8_t *) DUK_HCOMPFUNC_GET_CODE_BASE((heap), (h)))))
7644#define DUK_HCOMPFUNC_GET_CONSTS_COUNT(heap, h) ((duk_size_t) (DUK_HCOMPFUNC_GET_CONSTS_SIZE((heap), (h)) / sizeof(duk_tval)))
7646#define DUK_HCOMPFUNC_GET_FUNCS_COUNT(heap, h) ((duk_size_t) (DUK_HCOMPFUNC_GET_FUNCS_SIZE((heap), (h)) / sizeof(duk_hobject *)))
7648#define DUK_HCOMPFUNC_GET_CODE_COUNT(heap, h) ((duk_size_t) (DUK_HCOMPFUNC_GET_CODE_SIZE((heap), (h)) / sizeof(duk_instr_t)))
7654#if defined(DUK_USE_ASSERTIONS)
7656#define DUK_HCOMPFUNC_ASSERT_VALID(h) \
7658 duk_hcompfunc_assert_valid((h)); \
7661#define DUK_HCOMPFUNC_ASSERT_VALID(h) \
7696#if defined(DUK_USE_HEAPPTR16)
7697 duk_uint16_t data16;
7709#if defined(DUK_USE_HEAPPTR16)
7710 duk_uint16_t funcs16;
7711 duk_uint16_t bytecode16;
7720#if defined(DUK_USE_HEAPPTR16)
7721 duk_uint16_t lex_env16;
7722 duk_uint16_t var_env16;
7789#if defined(DUK_USE_DEBUGGER_SUPPORT)
7793 duk_uint32_t start_line;
7794 duk_uint32_t end_line;
7804#if !defined(DUK_HNATFUNC_H_INCLUDED)
7805#define DUK_HNATFUNC_H_INCLUDED
7807#if defined(DUK_USE_ASSERTIONS)
7809#define DUK_HNATFUNC_ASSERT_VALID(h) \
7811 duk_hnatfunc_assert_valid((h)); \
7814#define DUK_HNATFUNC_ASSERT_VALID(h) \
7819#define DUK_HNATFUNC_NARGS_VARARGS ((duk_int16_t) -1)
7820#define DUK_HNATFUNC_NARGS_MAX ((duk_int16_t) 0x7fff)
7849#if !defined(DUK_HBOUNDFUNC_H_INCLUDED)
7850#define DUK_HBOUNDFUNC_H_INCLUDED
7855#define DUK_HBOUNDFUNC_MAX_ARGS 0x20000000UL
7857#if defined(DUK_USE_ASSERTIONS)
7859#define DUK_HBOUNDFUNC_ASSERT_VALID(h) \
7861 duk_hboundfunc_assert_valid((h)); \
7864#define DUK_HBOUNDFUNC_ASSERT_VALID(h) \
7892#if !defined(DUK_HBUFOBJ_H_INCLUDED)
7893#define DUK_HBUFOBJ_H_INCLUDED
7895#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
7898#define DUK_HBUFOBJ_ELEM_UINT8 0
7899#define DUK_HBUFOBJ_ELEM_UINT8CLAMPED 1
7900#define DUK_HBUFOBJ_ELEM_INT8 2
7901#define DUK_HBUFOBJ_ELEM_UINT16 3
7902#define DUK_HBUFOBJ_ELEM_INT16 4
7903#define DUK_HBUFOBJ_ELEM_UINT32 5
7904#define DUK_HBUFOBJ_ELEM_INT32 6
7905#define DUK_HBUFOBJ_ELEM_FLOAT32 7
7906#define DUK_HBUFOBJ_ELEM_FLOAT64 8
7907#define DUK_HBUFOBJ_ELEM_MAX 8
7909#if defined(DUK_USE_ASSERTIONS)
7911#define DUK_HBUFOBJ_ASSERT_VALID(h) \
7913 duk_hbufobj_assert_valid((h)); \
7916#define DUK_HBUFOBJ_ASSERT_VALID(h) \
7925#define DUK_HBUFOBJ_GET_SLICE_BASE(heap, h) \
7926 (DUK_ASSERT_EXPR((h) != NULL), \
7927 DUK_ASSERT_EXPR((h)->buf != NULL), \
7928 (((duk_uint8_t *) DUK_HBUFFER_GET_DATA_PTR((heap), (h)->buf)) + (h)->offset))
7935#define DUK_HBUFOBJ_FULL_SLICE(h) \
7936 (DUK_ASSERT_EXPR((h) != NULL), \
7937 DUK_ASSERT_EXPR((h)->buf != NULL), \
7938 ((h)->offset == 0 && (h)->length == DUK_HBUFFER_GET_SIZE((h)->buf)))
7943#define DUK_HBUFOBJ_VALID_SLICE(h) \
7944 (DUK_ASSERT_EXPR((h) != NULL), \
7945 DUK_ASSERT_EXPR((h)->buf != NULL), \
7946 ((h)->offset + (h)->length <= DUK_HBUFFER_GET_SIZE((h)->buf)))
7955#define DUK_HBUFOBJ_VALID_BYTEOFFSET_INCL(h, off) \
7956 (DUK_ASSERT_EXPR((h) != NULL), DUK_ASSERT_EXPR((h)->buf != NULL), ((h)->offset + (off) < DUK_HBUFFER_GET_SIZE((h)->buf)))
7958#define DUK_HBUFOBJ_VALID_BYTEOFFSET_EXCL(h, off) \
7959 (DUK_ASSERT_EXPR((h) != NULL), DUK_ASSERT_EXPR((h)->buf != NULL), ((h)->offset + (off) <= DUK_HBUFFER_GET_SIZE((h)->buf)))
7967#define DUK_HBUFOBJ_CLAMP_BYTELENGTH(h, len) (DUK_ASSERT_EXPR((h) != NULL), duk_hbufobj_clamp_bytelength((h), (len)))
7970#define DUK_HBUFOBJ_HAS_VIRTUAL_INDICES(h) ((h)->is_typedarray)
8034#if !defined(DUK_HTHREAD_H_INCLUDED)
8035#define DUK_HTHREAD_H_INCLUDED
8042#define DUK_VALSTACK_INITIAL_SIZE 96U
8047#define DUK_VALSTACK_INTERNAL_EXTRA 32U
8053#define DUK_VALSTACK_API_ENTRY_MINIMUM DUK_API_ENTRY_STACK
8059#define DUK_ACT_FLAG_STRICT (1U << 0)
8060#define DUK_ACT_FLAG_TAILCALLED (1U << 1)
8061#define DUK_ACT_FLAG_CONSTRUCT (1U << 2)
8062#define DUK_ACT_FLAG_PREVENT_YIELD (1U << 3)
8063#define DUK_ACT_FLAG_DIRECT_EVAL (1U << 4)
8064#define DUK_ACT_FLAG_CONSTRUCT_PROXY (1U << 5)
8065#define DUK_ACT_FLAG_BREAKPOINT_ACTIVE (1U << 6)
8067#define DUK_ACT_GET_FUNC(act) ((act)->func)
8073#define DUK_TB_FLAG_NOBLAME_FILELINE (1U << 0)
8082#define DUK_CAT_TYPE_MASK 0x0000000fUL
8083#define DUK_CAT_TYPE_BITS 4
8084#define DUK_CAT_LABEL_MASK 0xffffff00UL
8085#define DUK_CAT_LABEL_BITS 24
8086#define DUK_CAT_LABEL_SHIFT 8
8088#define DUK_CAT_FLAG_CATCH_ENABLED (1U << 4)
8089#define DUK_CAT_FLAG_FINALLY_ENABLED (1U << 5)
8090#define DUK_CAT_FLAG_CATCH_BINDING_ENABLED (1U << 6)
8091#define DUK_CAT_FLAG_LEXENV_ACTIVE (1U << 7)
8093#define DUK_CAT_TYPE_UNKNOWN 0
8094#define DUK_CAT_TYPE_TCF 1
8095#define DUK_CAT_TYPE_LABEL 2
8097#define DUK_CAT_GET_TYPE(c) ((c)->flags & DUK_CAT_TYPE_MASK)
8098#define DUK_CAT_GET_LABEL(c) (((c)->flags & DUK_CAT_LABEL_MASK) >> DUK_CAT_LABEL_SHIFT)
8100#define DUK_CAT_HAS_CATCH_ENABLED(c) ((c)->flags & DUK_CAT_FLAG_CATCH_ENABLED)
8101#define DUK_CAT_HAS_FINALLY_ENABLED(c) ((c)->flags & DUK_CAT_FLAG_FINALLY_ENABLED)
8102#define DUK_CAT_HAS_CATCH_BINDING_ENABLED(c) ((c)->flags & DUK_CAT_FLAG_CATCH_BINDING_ENABLED)
8103#define DUK_CAT_HAS_LEXENV_ACTIVE(c) ((c)->flags & DUK_CAT_FLAG_LEXENV_ACTIVE)
8105#define DUK_CAT_SET_CATCH_ENABLED(c) \
8107 (c)->flags |= DUK_CAT_FLAG_CATCH_ENABLED; \
8109#define DUK_CAT_SET_FINALLY_ENABLED(c) \
8111 (c)->flags |= DUK_CAT_FLAG_FINALLY_ENABLED; \
8113#define DUK_CAT_SET_CATCH_BINDING_ENABLED(c) \
8115 (c)->flags |= DUK_CAT_FLAG_CATCH_BINDING_ENABLED; \
8117#define DUK_CAT_SET_LEXENV_ACTIVE(c) \
8119 (c)->flags |= DUK_CAT_FLAG_LEXENV_ACTIVE; \
8122#define DUK_CAT_CLEAR_CATCH_ENABLED(c) \
8124 (c)->flags &= ~DUK_CAT_FLAG_CATCH_ENABLED; \
8126#define DUK_CAT_CLEAR_FINALLY_ENABLED(c) \
8128 (c)->flags &= ~DUK_CAT_FLAG_FINALLY_ENABLED; \
8130#define DUK_CAT_CLEAR_CATCH_BINDING_ENABLED(c) \
8132 (c)->flags &= ~DUK_CAT_FLAG_CATCH_BINDING_ENABLED; \
8134#define DUK_CAT_CLEAR_LEXENV_ACTIVE(c) \
8136 (c)->flags &= ~DUK_CAT_FLAG_LEXENV_ACTIVE; \
8143#if defined(DUK_USE_ROM_STRINGS)
8144#define DUK_HTHREAD_GET_STRING(thr, idx) ((duk_hstring *) DUK_LOSE_CONST(duk_rom_strings_stridx[(idx)]))
8146#if defined(DUK_USE_HEAPPTR16)
8147#define DUK_HTHREAD_GET_STRING(thr, idx) ((duk_hstring *) DUK_USE_HEAPPTR_DEC16((thr)->heap->heap_udata, (thr)->strs16[(idx)]))
8149#define DUK_HTHREAD_GET_STRING(thr, idx) ((thr)->strs[(idx)])
8154#define DUK_HTHREAD_STATE_INACTIVE 1
8155#define DUK_HTHREAD_STATE_RUNNING 2
8156#define DUK_HTHREAD_STATE_RESUMED 3
8157#define DUK_HTHREAD_STATE_YIELDED 4
8158#define DUK_HTHREAD_STATE_TERMINATED 5
8165#if defined(DUK_USE_INTERRUPT_COUNTER)
8166#define DUK_HTHREAD_INTCTR_DEFAULT (256L * 1024L)
8177#if defined(DUK_USE_ASSERTIONS)
8180#define DUK_HTHREAD_ASSERT_VALID(thr) \
8182 duk_hthread_assert_valid((thr)); \
8187#define DUK_CTX_ASSERT_VALID(thr) \
8189 duk_ctx_assert_valid((thr)); \
8192#define DUK_HTHREAD_ASSERT_VALID(thr) \
8195#define DUK_CTX_ASSERT_VALID(thr) \
8203#define DUK_ASSERT_API_ENTRY(thr) \
8205 DUK_CTX_ASSERT_VALID((thr)); \
8206 DUK_ASSERT((thr)->heap != NULL); \
8207 DUK_ASSERT((thr)->heap->dbg_calling_transport == 0); \
8214#define DUK_ASSERT_STRIDX_VALID(val) DUK_ASSERT((duk_uint_t) (val) < DUK_HEAP_NUM_STRINGS)
8216#define DUK_ASSERT_BIDX_VALID(val) DUK_ASSERT((duk_uint_t) (val) < DUK_NUM_BUILTINS)
8223#define DUK_HTHREAD_THIS_PTR(thr) \
8224 (DUK_ASSERT_EXPR((thr) != NULL), DUK_ASSERT_EXPR((thr)->valstack_bottom > (thr)->valstack), (thr)->valstack_bottom - 1)
8240#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
8286#if defined(DUK_USE_DEBUGGER_SUPPORT)
8287 duk_uint32_t prev_line;
8376#if defined(DUK_USE_INTERRUPT_COUNTER)
8402#if defined(DUK_USE_ROM_STRINGS)
8405#if defined(DUK_USE_HEAPPTR16)
8406 duk_uint16_t *strs16;
8433#if defined(DUK_USE_FINALIZER_TORTURE)
8439#if defined(DUK_USE_DEBUGGER_SUPPORT)
8456#if !defined(DUK_HARRAY_H_INCLUDED)
8457#define DUK_HARRAY_H_INCLUDED
8459#if defined(DUK_USE_ASSERTIONS)
8461#define DUK_HARRAY_ASSERT_VALID(h) \
8463 duk_harray_assert_valid((h)); \
8466#define DUK_HARRAY_ASSERT_VALID(h) \
8471#define DUK_HARRAY_LENGTH_WRITABLE(h) (!(h)->length_nonwritable)
8472#define DUK_HARRAY_LENGTH_NONWRITABLE(h) ((h)->length_nonwritable)
8473#define DUK_HARRAY_SET_LENGTH_WRITABLE(h) \
8475 (h)->length_nonwritable = 0; \
8477#define DUK_HARRAY_SET_LENGTH_NONWRITABLE(h) \
8479 (h)->length_nonwritable = 1; \
8512#if !defined(DUK_HENV_H_INCLUDED)
8513#define DUK_HENV_H_INCLUDED
8515#if defined(DUK_USE_ASSERTIONS)
8518#define DUK_HDECENV_ASSERT_VALID(h) \
8520 duk_hdecenv_assert_valid((h)); \
8522#define DUK_HOBJENV_ASSERT_VALID(h) \
8524 duk_hobjenv_assert_valid((h)); \
8527#define DUK_HDECENV_ASSERT_VALID(h) \
8530#define DUK_HOBJENV_ASSERT_VALID(h) \
8575#if !defined(DUK_HBUFFER_H_INCLUDED)
8576#define DUK_HBUFFER_H_INCLUDED
8586#define DUK_HBUFFER_FLAG_DYNAMIC DUK_HEAPHDR_USER_FLAG(0)
8587#define DUK_HBUFFER_FLAG_EXTERNAL DUK_HEAPHDR_USER_FLAG(1)
8589#define DUK_HBUFFER_HAS_DYNAMIC(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HBUFFER_FLAG_DYNAMIC)
8590#define DUK_HBUFFER_HAS_EXTERNAL(x) DUK_HEAPHDR_CHECK_FLAG_BITS(&(x)->hdr, DUK_HBUFFER_FLAG_EXTERNAL)
8592#define DUK_HBUFFER_SET_DYNAMIC(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HBUFFER_FLAG_DYNAMIC)
8593#define DUK_HBUFFER_SET_EXTERNAL(x) DUK_HEAPHDR_SET_FLAG_BITS(&(x)->hdr, DUK_HBUFFER_FLAG_EXTERNAL)
8595#define DUK_HBUFFER_CLEAR_DYNAMIC(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HBUFFER_FLAG_DYNAMIC)
8596#define DUK_HBUFFER_CLEAR_EXTERNAL(x) DUK_HEAPHDR_CLEAR_FLAG_BITS(&(x)->hdr, DUK_HBUFFER_FLAG_EXTERNAL)
8608#if defined(DUK_USE_BUFLEN16)
8609#define DUK_HBUFFER_MAX_BYTELEN (0x0000ffffUL)
8614#define DUK_HBUFFER_MAX_BYTELEN (0x7ffffffeUL)
8621#if defined(DUK_USE_BUFLEN16)
8623#define DUK_HBUFFER_GET_SIZE(x) ((x)->hdr.h_flags >> 16)
8624#define DUK_HBUFFER_SET_SIZE(x, v) \
8626 duk_size_t duk__v; \
8628 DUK_ASSERT(duk__v <= 0xffffUL); \
8629 (x)->hdr.h_flags = ((x)->hdr.h_flags & 0x0000ffffUL) | (((duk_uint32_t) duk__v) << 16); \
8631#define DUK_HBUFFER_ADD_SIZE(x, dv) \
8633 (x)->hdr.h_flags += ((dv) << 16); \
8635#define DUK_HBUFFER_SUB_SIZE(x, dv) \
8637 (x)->hdr.h_flags -= ((dv) << 16); \
8640#define DUK_HBUFFER_GET_SIZE(x) (((duk_hbuffer *) (x))->size)
8641#define DUK_HBUFFER_SET_SIZE(x, v) \
8643 ((duk_hbuffer *) (x))->size = (v); \
8645#define DUK_HBUFFER_ADD_SIZE(x, dv) \
8647 (x)->size += (dv); \
8649#define DUK_HBUFFER_SUB_SIZE(x, dv) \
8651 (x)->size -= (dv); \
8655#define DUK_HBUFFER_FIXED_GET_SIZE(x) DUK_HBUFFER_GET_SIZE((duk_hbuffer *) (x))
8656#define DUK_HBUFFER_FIXED_SET_SIZE(x, v) DUK_HBUFFER_SET_SIZE((duk_hbuffer *) (x))
8658#define DUK_HBUFFER_DYNAMIC_GET_SIZE(x) DUK_HBUFFER_GET_SIZE((duk_hbuffer *) (x))
8659#define DUK_HBUFFER_DYNAMIC_SET_SIZE(x, v) DUK_HBUFFER_SET_SIZE((duk_hbuffer *) (x), (v))
8660#define DUK_HBUFFER_DYNAMIC_ADD_SIZE(x, dv) DUK_HBUFFER_ADD_SIZE((duk_hbuffer *) (x), (dv))
8661#define DUK_HBUFFER_DYNAMIC_SUB_SIZE(x, dv) DUK_HBUFFER_SUB_SIZE((duk_hbuffer *) (x), (dv))
8663#define DUK_HBUFFER_EXTERNAL_GET_SIZE(x) DUK_HBUFFER_GET_SIZE((duk_hbuffer *) (x))
8664#define DUK_HBUFFER_EXTERNAL_SET_SIZE(x, v) DUK_HBUFFER_SET_SIZE((duk_hbuffer *) (x), (v))
8666#define DUK_HBUFFER_FIXED_GET_DATA_PTR(heap, x) ((duk_uint8_t *) (((duk_hbuffer_fixed *) (void *) (x)) + 1))
8668#if defined(DUK_USE_HEAPPTR16)
8669#define DUK_HBUFFER_DYNAMIC_GET_DATA_PTR(heap, x) \
8670 ((void *) DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, ((duk_heaphdr *) (x))->h_extra16))
8671#define DUK_HBUFFER_DYNAMIC_SET_DATA_PTR(heap, x, v) \
8673 ((duk_heaphdr *) (x))->h_extra16 = DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (void *) (v)); \
8675#define DUK_HBUFFER_DYNAMIC_SET_DATA_PTR_NULL(heap, x) \
8677 ((duk_heaphdr *) (x))->h_extra16 = 0; \
8680#define DUK_HBUFFER_DYNAMIC_GET_DATA_PTR(heap, x) ((x)->curr_alloc)
8681#define DUK_HBUFFER_DYNAMIC_SET_DATA_PTR(heap, x, v) \
8683 (x)->curr_alloc = (void *) (v); \
8685#define DUK_HBUFFER_DYNAMIC_SET_DATA_PTR_NULL(heap, x) \
8687 (x)->curr_alloc = (void *) NULL; \
8694#if defined(DUK_USE_HEAPPTR16)
8695#define DUK_HBUFFER_EXTERNAL_GET_DATA_PTR(heap, x) ((void *) (x)->curr_alloc)
8696#define DUK_HBUFFER_EXTERNAL_SET_DATA_PTR(heap, x, v) \
8698 (x)->curr_alloc = (void *) (v); \
8700#define DUK_HBUFFER_EXTERNAL_SET_DATA_PTR_NULL(heap, x) \
8702 (x)->curr_alloc = (void *) NULL; \
8705#define DUK_HBUFFER_EXTERNAL_GET_DATA_PTR(heap, x) ((void *) (x)->curr_alloc)
8706#define DUK_HBUFFER_EXTERNAL_SET_DATA_PTR(heap, x, v) \
8708 (x)->curr_alloc = (void *) (v); \
8710#define DUK_HBUFFER_EXTERNAL_SET_DATA_PTR_NULL(heap, x) \
8712 (x)->curr_alloc = (void *) NULL; \
8719#if defined(DUK_USE_HEAPPTR16)
8720#define DUK_HBUFFER_GET_DATA_PTR(heap, x) \
8721 (DUK_HBUFFER_HAS_DYNAMIC((x)) ? \
8722 (DUK_HBUFFER_HAS_EXTERNAL((x)) ? DUK_HBUFFER_EXTERNAL_GET_DATA_PTR((heap), (duk_hbuffer_external *) (x)) : \
8723 DUK_HBUFFER_DYNAMIC_GET_DATA_PTR((heap), (duk_hbuffer_dynamic *) (x))) : \
8724 DUK_HBUFFER_FIXED_GET_DATA_PTR((heap), (duk_hbuffer_fixed *) (void *) (x)))
8729#define DUK_HBUFFER_GET_DATA_PTR(heap, x) \
8730 (DUK_HBUFFER_HAS_DYNAMIC((x)) ? DUK_HBUFFER_DYNAMIC_GET_DATA_PTR((heap), (duk_hbuffer_dynamic *) (x)) : \
8731 DUK_HBUFFER_FIXED_GET_DATA_PTR((heap), (duk_hbuffer_fixed *) (void *) (x)))
8735#if defined(DUK_USE_ASSERTIONS)
8737#define DUK_HBUFFER_ASSERT_VALID(h) \
8739 duk_hbuffer_assert_valid((h)); \
8742#define DUK_HBUFFER_ASSERT_VALID(h) \
8760#if defined(DUK_USE_BUFLEN16)
8795#if (DUK_USE_ALIGN_BY == 8) && defined(DUK_USE_PACK_MSVC_PRAGMA)
8796#pragma pack(push, 8)
8808#if defined(DUK_USE_BUFLEN16)
8814#if (DUK_USE_ALIGN_BY == 4)
8815 duk_uint32_t dummy_for_align4;
8816#elif (DUK_USE_ALIGN_BY == 8)
8818#if defined(DUK_USE_64BIT_OPS)
8819 duk_uint64_t dummy_for_align8_2;
8821#elif (DUK_USE_ALIGN_BY == 1)
8824#error invalid DUK_USE_ALIGN_BY
8841#if (DUK_USE_ALIGN_BY == 8) && defined(DUK_USE_PACK_GCC_ATTR)
8843#elif (DUK_USE_ALIGN_BY == 8) && defined(DUK_USE_PACK_CLANG_ATTR)
8847#if (DUK_USE_ALIGN_BY == 8) && defined(DUK_USE_PACK_MSVC_PRAGMA)
8858#if defined(DUK_USE_BUFLEN16)
8864#if defined(DUK_USE_HEAPPTR16)
8887#if defined(DUK_USE_BUFLEN16)
8916#if !defined(DUK_HPROXY_H_INCLUDED)
8917#define DUK_HPROXY_H_INCLUDED
8919#if defined(DUK_USE_ASSERTIONS)
8921#define DUK_HPROXY_ASSERT_VALID(h) \
8923 duk_hproxy_assert_valid((h)); \
8926#define DUK_HPROXY_ASSERT_VALID(h) \
8951#if !defined(DUK_HEAP_H_INCLUDED)
8952#define DUK_HEAP_H_INCLUDED
8960#define DUK_HEAP_FLAG_MARKANDSWEEP_RECLIMIT_REACHED \
8962#define DUK_HEAP_FLAG_INTERRUPT_RUNNING (1U << 1)
8963#define DUK_HEAP_FLAG_FINALIZER_NORESCUE (1U << 2)
8964#define DUK_HEAP_FLAG_DEBUGGER_PAUSED (1U << 3)
8966#define DUK__HEAP_HAS_FLAGS(heap, bits) ((heap)->flags & (bits))
8967#define DUK__HEAP_SET_FLAGS(heap, bits) \
8969 (heap)->flags |= (bits); \
8971#define DUK__HEAP_CLEAR_FLAGS(heap, bits) \
8973 (heap)->flags &= ~(bits); \
8976#define DUK_HEAP_HAS_MARKANDSWEEP_RECLIMIT_REACHED(heap) DUK__HEAP_HAS_FLAGS((heap), DUK_HEAP_FLAG_MARKANDSWEEP_RECLIMIT_REACHED)
8977#define DUK_HEAP_HAS_INTERRUPT_RUNNING(heap) DUK__HEAP_HAS_FLAGS((heap), DUK_HEAP_FLAG_INTERRUPT_RUNNING)
8978#define DUK_HEAP_HAS_FINALIZER_NORESCUE(heap) DUK__HEAP_HAS_FLAGS((heap), DUK_HEAP_FLAG_FINALIZER_NORESCUE)
8979#define DUK_HEAP_HAS_DEBUGGER_PAUSED(heap) DUK__HEAP_HAS_FLAGS((heap), DUK_HEAP_FLAG_DEBUGGER_PAUSED)
8981#define DUK_HEAP_SET_MARKANDSWEEP_RECLIMIT_REACHED(heap) DUK__HEAP_SET_FLAGS((heap), DUK_HEAP_FLAG_MARKANDSWEEP_RECLIMIT_REACHED)
8982#define DUK_HEAP_SET_INTERRUPT_RUNNING(heap) DUK__HEAP_SET_FLAGS((heap), DUK_HEAP_FLAG_INTERRUPT_RUNNING)
8983#define DUK_HEAP_SET_FINALIZER_NORESCUE(heap) DUK__HEAP_SET_FLAGS((heap), DUK_HEAP_FLAG_FINALIZER_NORESCUE)
8984#define DUK_HEAP_SET_DEBUGGER_PAUSED(heap) DUK__HEAP_SET_FLAGS((heap), DUK_HEAP_FLAG_DEBUGGER_PAUSED)
8986#define DUK_HEAP_CLEAR_MARKANDSWEEP_RECLIMIT_REACHED(heap) \
8987 DUK__HEAP_CLEAR_FLAGS((heap), DUK_HEAP_FLAG_MARKANDSWEEP_RECLIMIT_REACHED)
8988#define DUK_HEAP_CLEAR_INTERRUPT_RUNNING(heap) DUK__HEAP_CLEAR_FLAGS((heap), DUK_HEAP_FLAG_INTERRUPT_RUNNING)
8989#define DUK_HEAP_CLEAR_FINALIZER_NORESCUE(heap) DUK__HEAP_CLEAR_FLAGS((heap), DUK_HEAP_FLAG_FINALIZER_NORESCUE)
8990#define DUK_HEAP_CLEAR_DEBUGGER_PAUSED(heap) DUK__HEAP_CLEAR_FLAGS((heap), DUK_HEAP_FLAG_DEBUGGER_PAUSED)
8996#define DUK_LJ_TYPE_UNKNOWN 0
8997#define DUK_LJ_TYPE_THROW 1
8998#define DUK_LJ_TYPE_YIELD 2
8999#define DUK_LJ_TYPE_RESUME 3
9000#define DUK_LJ_TYPE_BREAK 4
9001#define DUK_LJ_TYPE_CONTINUE 5
9002#define DUK_LJ_TYPE_RETURN 6
9003#define DUK_LJ_TYPE_NORMAL 7
9016#define DUK_MS_FLAG_EMERGENCY (1U << 0)
9022#define DUK_MS_FLAG_POSTPONE_RESCUE (1U << 1)
9028#define DUK_MS_FLAG_NO_OBJECT_COMPACTION (1U << 2)
9038#if defined(DUK_USE_INTERRUPT_COUNTER)
9039#define DUK_HEAP_SWITCH_THREAD(heap, newthr) duk_heap_switch_thread((heap), (newthr))
9041#define DUK_HEAP_SWITCH_THREAD(heap, newthr) \
9043 (heap)->curr_thread = (newthr); \
9051#if defined(DUK_USE_DEBUG)
9052#define DUK_STATS_INC(heap, fieldname) \
9054 (heap)->fieldname += 1; \
9057#define DUK_STATS_INC(heap, fieldname) \
9076#if defined(DUK_USE_REFERENCE_COUNTING)
9077#define DUK_HEAP_MARK_AND_SWEEP_TRIGGER_MULT 12800L
9078#define DUK_HEAP_MARK_AND_SWEEP_TRIGGER_ADD 1024L
9079#define DUK_HEAP_MARK_AND_SWEEP_TRIGGER_SKIP 256L
9081#define DUK_HEAP_MARK_AND_SWEEP_TRIGGER_MULT 256L
9082#define DUK_HEAP_MARK_AND_SWEEP_TRIGGER_ADD 1024L
9083#define DUK_HEAP_MARK_AND_SWEEP_TRIGGER_SKIP 256L
9087#if defined(DUK_USE_GC_TORTURE)
9088#define DUK_GC_TORTURE(heap) \
9090 duk_heap_mark_and_sweep((heap), 0); \
9093#define DUK_GC_TORTURE(heap) \
9101#define DUK_HEAP_STRCACHE_SIZE 4
9102#define DUK_HEAP_STRINGCACHE_NOCACHE_LIMIT 16
9105#define DUK_HEAP_INSERT_INTO_HEAP_ALLOCATED(heap, hdr) duk_heap_insert_into_heap_allocated((heap), (hdr))
9106#if defined(DUK_USE_REFERENCE_COUNTING)
9107#define DUK_HEAP_REMOVE_FROM_HEAP_ALLOCATED(heap, hdr) duk_heap_remove_from_heap_allocated((heap), (hdr))
9109#if defined(DUK_USE_FINALIZER_SUPPORT)
9110#define DUK_HEAP_INSERT_INTO_FINALIZE_LIST(heap, hdr) duk_heap_insert_into_finalize_list((heap), (hdr))
9111#define DUK_HEAP_REMOVE_FROM_FINALIZE_LIST(heap, hdr) duk_heap_remove_from_finalize_list((heap), (hdr))
9119#if defined(DUK_USE_ROM_STRINGS)
9120#define DUK_HEAP_GET_STRING(heap, idx) ((duk_hstring *) DUK_LOSE_CONST(duk_rom_strings_stridx[(idx)]))
9122#if defined(DUK_USE_HEAPPTR16)
9123#define DUK_HEAP_GET_STRING(heap, idx) ((duk_hstring *) DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (heap)->strs16[(idx)]))
9125#define DUK_HEAP_GET_STRING(heap, idx) ((heap)->strs[(idx)])
9133#define DUK_ALLOC_RAW(heap, size) ((heap)->alloc_func((heap)->heap_udata, (size)))
9135#define DUK_REALLOC_RAW(heap, ptr, newsize) ((heap)->realloc_func((heap)->heap_udata, (void *) (ptr), (newsize)))
9137#define DUK_FREE_RAW(heap, ptr) ((heap)->free_func((heap)->heap_udata, (void *) (ptr)))
9168typedef void *(*duk_mem_getptr)(
duk_heap *heap,
void *ud);
9170#define DUK_ALLOC(heap, size) duk_heap_mem_alloc((heap), (size))
9171#define DUK_ALLOC_ZEROED(heap, size) duk_heap_mem_alloc_zeroed((heap), (size))
9172#define DUK_REALLOC(heap, ptr, newsize) duk_heap_mem_realloc((heap), (ptr), (newsize))
9173#define DUK_REALLOC_INDIRECT(heap, cb, ud, newsize) duk_heap_mem_realloc_indirect((heap), (cb), (ud), (newsize))
9174#define DUK_FREE(heap, ptr) duk_heap_mem_free((heap), (ptr))
9183#define DUK_ALLOC_CHECKED(thr, size) duk_heap_mem_alloc_checked((thr), (size))
9184#define DUK_ALLOC_CHECKED_ZEROED(thr, size) duk_heap_mem_alloc_checked_zeroed((thr), (size))
9185#define DUK_FREE_CHECKED(thr, ptr) duk_heap_mem_free((thr)->heap, (ptr))
9191#define DUK_HEAP_ALLOC_FAIL_MARKANDSWEEP_LIMIT \
9199#define DUK_HEAP_ALLOC_FAIL_MARKANDSWEEP_EMERGENCY_LIMIT \
9211#define DUK_HEAP_MAX_BREAKPOINTS 16
9218#define DUK_HEAP_DBG_RATELIMIT_OPCODES 4000
9221#define DUK_HEAP_DBG_RATELIMIT_MILLISECS 200
9224#define DUK_PAUSE_FLAG_ONE_OPCODE (1U << 0)
9225#define DUK_PAUSE_FLAG_ONE_OPCODE_ACTIVE (1U << 1)
9226#define DUK_PAUSE_FLAG_LINE_CHANGE (1U << 2)
9227#define DUK_PAUSE_FLAG_FUNC_ENTRY (1U << 3)
9228#define DUK_PAUSE_FLAG_FUNC_EXIT (1U << 4)
9229#define DUK_PAUSE_FLAG_CAUGHT_ERROR (1U << 5)
9230#define DUK_PAUSE_FLAG_UNCAUGHT_ERROR (1U << 6)
9265#define DUK_ASSERT_LJSTATE_UNSET(heap) \
9267 DUK_ASSERT(heap != NULL); \
9268 DUK_ASSERT(heap->lj.type == DUK_LJ_TYPE_UNKNOWN); \
9269 DUK_ASSERT(heap->lj.iserror == 0); \
9270 DUK_ASSERT(DUK_TVAL_IS_UNDEFINED(&heap->lj.value1)); \
9271 DUK_ASSERT(DUK_TVAL_IS_UNDEFINED(&heap->lj.value2)); \
9273#define DUK_ASSERT_LJSTATE_SET(heap) \
9275 DUK_ASSERT(heap != NULL); \
9276 DUK_ASSERT(heap->lj.type != DUK_LJ_TYPE_UNKNOWN); \
9284 const duk_uint8_t *
addr;
9292#if defined(DUK_USE_ASSERTIONS)
9294#define DUK_HEAP_ASSERT_VALID(heap) \
9296 duk_heap_assert_valid((heap)); \
9299#define DUK_HEAP_ASSERT_VALID(heap) \
9336#if defined(DUK_USE_REFERENCE_COUNTING)
9340#if defined(DUK_USE_FINALIZER_SUPPORT)
9343#if defined(DUK_USE_ASSERTIONS)
9350#if defined(DUK_USE_CACHE_ACTIVATION)
9353#if defined(DUK_USE_CACHE_CATCHER)
9361#if defined(DUK_USE_VOLUNTARY_GC)
9405#if defined(DUK_USE_ASSERTIONS)
9413#if defined(DUK_USE_ASSERTIONS)
9429#if defined(DUK_USE_AUGMENT_ERROR_THROW) || defined(DUK_USE_AUGMENT_ERROR_CREATE)
9453#if !defined(DUK_USE_GET_RANDOM_DOUBLE)
9454#if defined(DUK_USE_PREFER_SIZE) || !defined(DUK_USE_64BIT_OPS)
9472#if defined(DUK_USE_INTERRUPT_COUNTER) && defined(DUK_USE_DEBUG)
9478#if defined(DUK_USE_DEBUGGER_SUPPORT)
9498 duk_uint32_t dbg_pause_startline;
9512 duk_uint8_t dbg_next_byte;
9514#if defined(DUK_USE_ASSERTIONS)
9519#if defined(DUK_USE_STRTAB_PTRCOMP)
9520 duk_uint16_t *strtable16;
9526#if (DUK_USE_STRTAB_MINSIZE != DUK_USE_STRTAB_MAXSIZE)
9536#if defined(DUK_USE_LITCACHE_SIZE)
9545#if defined(DUK_USE_ROM_STRINGS)
9548#if defined(DUK_USE_HEAPPTR16)
9556#if defined(DUK_USE_DEBUG)
9626#if defined(DUK_USE_REFERENCE_COUNTING)
9629#if defined(DUK_USE_FINALIZER_SUPPORT)
9633#if defined(DUK_USE_ASSERTIONS)
9636#if defined(DUK_USE_INTERRUPT_COUNTER)
9642#if defined(DUK_USE_LITCACHE_SIZE)
9644 const duk_uint8_t *str,
9649#if defined(DUK_USE_REFERENCE_COUNTING)
9655#if defined(DUK_USE_DEBUG)
9664#if defined(DUK_USE_PROVIDE_DEFAULT_ALLOC_FUNCTIONS)
9680#if defined(DUK_USE_FINALIZER_SUPPORT)
9691#if !defined(DUK_DEBUGGER_H_INCLUDED)
9692#define DUK_DEBUGGER_H_INCLUDED
9697#define DUK_DBG_IB_EOM 0x00
9698#define DUK_DBG_IB_REQUEST 0x01
9699#define DUK_DBG_IB_REPLY 0x02
9700#define DUK_DBG_IB_ERROR 0x03
9701#define DUK_DBG_IB_NOTIFY 0x04
9704#define DUK_DBG_IB_INT4 0x10
9705#define DUK_DBG_IB_STR4 0x11
9706#define DUK_DBG_IB_STR2 0x12
9707#define DUK_DBG_IB_BUF4 0x13
9708#define DUK_DBG_IB_BUF2 0x14
9709#define DUK_DBG_IB_UNUSED 0x15
9710#define DUK_DBG_IB_UNDEFINED 0x16
9711#define DUK_DBG_IB_NULL 0x17
9712#define DUK_DBG_IB_TRUE 0x18
9713#define DUK_DBG_IB_FALSE 0x19
9714#define DUK_DBG_IB_NUMBER 0x1a
9715#define DUK_DBG_IB_OBJECT 0x1b
9716#define DUK_DBG_IB_POINTER 0x1c
9717#define DUK_DBG_IB_LIGHTFUNC 0x1d
9718#define DUK_DBG_IB_HEAPPTR 0x1e
9724#define DUK_DBG_ERR_UNKNOWN 0x00
9725#define DUK_DBG_ERR_UNSUPPORTED 0x01
9726#define DUK_DBG_ERR_TOOMANY 0x02
9727#define DUK_DBG_ERR_NOTFOUND 0x03
9728#define DUK_DBG_ERR_APPLICATION 0x04
9731#define DUK_DBG_CMD_STATUS 0x01
9732#define DUK_DBG_CMD_UNUSED_2 0x02
9733#define DUK_DBG_CMD_UNUSED_3 0x03
9734#define DUK_DBG_CMD_UNUSED_4 0x04
9735#define DUK_DBG_CMD_THROW 0x05
9736#define DUK_DBG_CMD_DETACHING 0x06
9737#define DUK_DBG_CMD_APPNOTIFY 0x07
9740#define DUK_DBG_CMD_BASICINFO 0x10
9741#define DUK_DBG_CMD_TRIGGERSTATUS 0x11
9742#define DUK_DBG_CMD_PAUSE 0x12
9743#define DUK_DBG_CMD_RESUME 0x13
9744#define DUK_DBG_CMD_STEPINTO 0x14
9745#define DUK_DBG_CMD_STEPOVER 0x15
9746#define DUK_DBG_CMD_STEPOUT 0x16
9747#define DUK_DBG_CMD_LISTBREAK 0x17
9748#define DUK_DBG_CMD_ADDBREAK 0x18
9749#define DUK_DBG_CMD_DELBREAK 0x19
9750#define DUK_DBG_CMD_GETVAR 0x1a
9751#define DUK_DBG_CMD_PUTVAR 0x1b
9752#define DUK_DBG_CMD_GETCALLSTACK 0x1c
9753#define DUK_DBG_CMD_GETLOCALS 0x1d
9754#define DUK_DBG_CMD_EVAL 0x1e
9755#define DUK_DBG_CMD_DETACH 0x1f
9756#define DUK_DBG_CMD_DUMPHEAP 0x20
9757#define DUK_DBG_CMD_GETBYTECODE 0x21
9758#define DUK_DBG_CMD_APPREQUEST 0x22
9759#define DUK_DBG_CMD_GETHEAPOBJINFO 0x23
9760#define DUK_DBG_CMD_GETOBJPROPDESC 0x24
9761#define DUK_DBG_CMD_GETOBJPROPDESCRANGE 0x25
9766#define DUK_DBG_PROPFLAG_SYMBOL (1U << 8)
9767#define DUK_DBG_PROPFLAG_HIDDEN (1U << 9)
9769#if defined(DUK_USE_DEBUGGER_SUPPORT)
9788#if defined(DUK_USE_DEBUGGER_INSPECT)
9797#if defined(DUK_USE_DEBUGGER_INSPECT)
9809#if defined(DUK_USE_DEBUGGER_DUMPHEAP) || defined(DUK_USE_DEBUGGER_INSPECT)
9824#if defined(DUK_USE_DEBUGGER_THROW_NOTIFY)
9865#if !defined(DUK_DEBUG_H_INCLUDED)
9866#define DUK_DEBUG_H_INCLUDED
9868#if defined(DUK_USE_DEBUG)
9870#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 0)
9878#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 1)
9886#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
9898#if defined(DUK_USE_VARIADIC_MACROS)
9903#define DUK__DEBUG_LOG(lev, ...) \
9904 duk_debug_log((duk_int_t) (lev), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO, DUK_FUNC_MACRO, __VA_ARGS__);
9906#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 0)
9907#define DUK_DPRINT(...) DUK__DEBUG_LOG(DUK_LEVEL_DEBUG, __VA_ARGS__)
9909#define DUK_DPRINT(...)
9912#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 1)
9913#define DUK_DDPRINT(...) DUK__DEBUG_LOG(DUK_LEVEL_DDEBUG, __VA_ARGS__)
9915#define DUK_DDPRINT(...)
9918#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
9919#define DUK_DDDPRINT(...) DUK__DEBUG_LOG(DUK_LEVEL_DDDEBUG, __VA_ARGS__)
9921#define DUK_DDDPRINT(...)
9926#define DUK__DEBUG_STASH(lev) \
9927 (void) DUK_SNPRINTF(duk_debug_file_stash, DUK_DEBUG_STASH_SIZE, "%s", (const char *) DUK_FILE_MACRO), \
9928 (void) (duk_debug_file_stash[DUK_DEBUG_STASH_SIZE - 1] = (char) 0), \
9929 (void) (duk_debug_line_stash = (duk_int_t) DUK_LINE_MACRO), \
9930 (void) DUK_SNPRINTF(duk_debug_func_stash, DUK_DEBUG_STASH_SIZE, "%s", (const char *) DUK_FUNC_MACRO), \
9931 (void) (duk_debug_func_stash[DUK_DEBUG_STASH_SIZE - 1] = (char) 0), (void) (duk_debug_level_stash = (lev))
9939#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 0)
9940#define DUK_DPRINT DUK__DEBUG_STASH(DUK_LEVEL_DEBUG), (void) duk_debug_log
9942#define DUK_DPRINT 0 &&
9945#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 1)
9946#define DUK_DDPRINT DUK__DEBUG_STASH(DUK_LEVEL_DDEBUG), (void) duk_debug_log
9948#define DUK_DDPRINT 0 &&
9951#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
9952#define DUK_DDDPRINT DUK__DEBUG_STASH(DUK_LEVEL_DDDEBUG), (void) duk_debug_log
9954#define DUK_DDDPRINT 0 &&
9975#if defined(DUK_USE_VARIADIC_MACROS)
9977#define DUK_DPRINT(...)
9978#define DUK_DDPRINT(...)
9979#define DUK_DDDPRINT(...)
9983#define DUK_DPRINT 0 &&
9984#define DUK_DDPRINT 0 &&
9985#define DUK_DDDPRINT 0 &&
9995#if defined(DUK_USE_DEBUG)
9996struct duk_fixedbuffer {
10008#if defined(DUK_USE_DEBUG)
10015#if defined(DUK_USE_VARIADIC_MACROS)
10019#define DUK_DEBUG_STASH_SIZE 128
10020#if !defined(DUK_SINGLE_FILE)
10032DUK_INTERNAL_DECL void duk_fb_sprintf(duk_fixedbuffer *fb,
const char *fmt, ...);
10055#if !defined(DUK_ERROR_H_INCLUDED)
10056#define DUK_ERROR_H_INCLUDED
10090#if defined(DUK_USE_VERBOSE_ERRORS)
10095#define DUK_ERROR(thr, err, msg) \
10097 duk_errcode_t duk__err = (err); \
10098 duk_int_t duk__line = (duk_int_t) DUK_LINE_MACRO; \
10099 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10100 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10101 duk_err_handle_error((thr), DUK_FILE_MACRO, (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), (msg)); \
10103#define DUK_ERROR_RAW(thr, file, line, err, msg) \
10105 duk_errcode_t duk__err = (err); \
10106 duk_int_t duk__line = (duk_int_t) (line); \
10107 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10108 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10109 duk_err_handle_error((thr), (file), (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), (msg)); \
10112#define DUK_ERROR_FMT1(thr, err, fmt, arg1) \
10114 duk_errcode_t duk__err = (err); \
10115 duk_int_t duk__line = (duk_int_t) DUK_LINE_MACRO; \
10116 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10117 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10118 duk_err_handle_error_fmt((thr), \
10120 (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), \
10124#define DUK_ERROR_RAW_FMT1(thr, file, line, err, fmt, arg1) \
10126 duk_errcode_t duk__err = (err); \
10127 duk_int_t duk__line = (duk_int_t) (line); \
10128 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10129 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10130 duk_err_handle_error_fmt((thr), \
10132 (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), \
10137#define DUK_ERROR_FMT2(thr, err, fmt, arg1, arg2) \
10139 duk_errcode_t duk__err = (err); \
10140 duk_int_t duk__line = (duk_int_t) DUK_LINE_MACRO; \
10141 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10142 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10143 duk_err_handle_error_fmt((thr), \
10145 (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), \
10150#define DUK_ERROR_RAW_FMT2(thr, file, line, err, fmt, arg1, arg2) \
10152 duk_errcode_t duk__err = (err); \
10153 duk_int_t duk__line = (duk_int_t) (line); \
10154 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10155 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10156 duk_err_handle_error_fmt((thr), \
10158 (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), \
10164#define DUK_ERROR_FMT3(thr, err, fmt, arg1, arg2, arg3) \
10166 duk_errcode_t duk__err = (err); \
10167 duk_int_t duk__line = (duk_int_t) DUK_LINE_MACRO; \
10168 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10169 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10170 duk_err_handle_error_fmt((thr), \
10172 (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), \
10178#define DUK_ERROR_RAW_FMT3(thr, file, line, err, fmt, arg1, arg2, arg3) \
10180 duk_errcode_t duk__err = (err); \
10181 duk_int_t duk__line = (duk_int_t) (line); \
10182 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10183 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10184 duk_err_handle_error_fmt((thr), \
10186 (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), \
10193#define DUK_ERROR_FMT4(thr, err, fmt, arg1, arg2, arg3, arg4) \
10195 duk_errcode_t duk__err = (err); \
10196 duk_int_t duk__line = (duk_int_t) DUK_LINE_MACRO; \
10197 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10198 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10199 duk_err_handle_error_fmt((thr), \
10201 (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), \
10208#define DUK_ERROR_RAW_FMT4(thr, file, line, err, fmt, arg1, arg2, arg3, arg4) \
10210 duk_errcode_t duk__err = (err); \
10211 duk_int_t duk__line = (duk_int_t) (line); \
10212 DUK_ASSERT(duk__err >= 0 && duk__err <= 0xff); \
10213 DUK_ASSERT(duk__line >= 0 && duk__line <= 0x00ffffffL); \
10214 duk_err_handle_error_fmt((thr), \
10216 (((duk_uint_t) duk__err) << 24) | ((duk_uint_t) duk__line), \
10226#define DUK_ERROR(thr, err, msg) duk_err_handle_error((thr), (err))
10227#define DUK_ERROR_RAW(thr, file, line, err, msg) duk_err_handle_error((thr), (err))
10229#define DUK_ERROR_FMT1(thr, err, fmt, arg1) DUK_ERROR((thr), (err), (fmt))
10230#define DUK_ERROR_RAW_FMT1(thr, file, line, err, fmt, arg1) DUK_ERROR_RAW((thr), (file), (line), (err), (fmt))
10232#define DUK_ERROR_FMT2(thr, err, fmt, arg1, arg2) DUK_ERROR((thr), (err), (fmt))
10233#define DUK_ERROR_RAW_FMT2(thr, file, line, err, fmt, arg1, arg2) DUK_ERROR_RAW((thr), (file), (line), (err), (fmt))
10235#define DUK_ERROR_FMT3(thr, err, fmt, arg1, arg2, arg3) DUK_ERROR((thr), (err), (fmt))
10236#define DUK_ERROR_RAW_FMT3(thr, file, line, err, fmt, arg1, arg2, arg3) DUK_ERROR_RAW((thr), (file), (line), (err), (fmt))
10238#define DUK_ERROR_FMT4(thr, err, fmt, arg1, arg2, arg3, arg4) DUK_ERROR((thr), (err), (fmt))
10239#define DUK_ERROR_RAW_FMT4(thr, file, line, err, fmt, arg1, arg2, arg3, arg4) DUK_ERROR_RAW((thr), (file), (line), (err), (fmt))
10249#define DUK_FATAL_WITHOUT_CONTEXT(msg) duk_default_fatal_handler(NULL, (msg))
10268#if defined(DUK_USE_VERBOSE_ERRORS)
10273#if defined(DUK_USE_PARANOID_ERRORS)
10274#define DUK_ERROR_REQUIRE_TYPE_INDEX(thr, idx, expectname, lowmemstr) \
10276 duk_err_require_type_index((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO, (idx), (expectname)); \
10279#define DUK_ERROR_REQUIRE_TYPE_INDEX(thr, idx, expectname, lowmemstr) \
10281 duk_err_require_type_index((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO, (idx), (expectname)); \
10285#define DUK_ERROR_INTERNAL(thr) \
10287 duk_err_error_internal((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO); \
10289#define DUK_DCERROR_INTERNAL(thr) \
10291 DUK_ERROR_INTERNAL((thr)); \
10294#define DUK_ERROR_ALLOC_FAILED(thr) \
10296 duk_err_error_alloc_failed((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO); \
10298#define DUK_ERROR_UNSUPPORTED(thr) \
10300 DUK_ERROR((thr), DUK_ERR_ERROR, DUK_STR_UNSUPPORTED); \
10302#define DUK_DCERROR_UNSUPPORTED(thr) \
10304 DUK_ERROR_UNSUPPORTED((thr)); \
10307#define DUK_ERROR_ERROR(thr, msg) \
10309 duk_err_error((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO, (msg)); \
10311#define DUK_ERROR_RANGE_INDEX(thr, idx) \
10313 duk_err_range_index((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO, (idx)); \
10315#define DUK_ERROR_RANGE_PUSH_BEYOND(thr) \
10317 duk_err_range_push_beyond((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO); \
10319#define DUK_ERROR_RANGE_INVALID_ARGS(thr) \
10321 DUK_ERROR_RANGE((thr), DUK_STR_INVALID_ARGS); \
10323#define DUK_DCERROR_RANGE_INVALID_ARGS(thr) \
10325 DUK_ERROR_RANGE_INVALID_ARGS((thr)); \
10328#define DUK_ERROR_RANGE_INVALID_COUNT(thr) \
10330 DUK_ERROR_RANGE((thr), DUK_STR_INVALID_COUNT); \
10332#define DUK_DCERROR_RANGE_INVALID_COUNT(thr) \
10334 DUK_ERROR_RANGE_INVALID_COUNT((thr)); \
10337#define DUK_ERROR_RANGE_INVALID_LENGTH(thr) \
10339 DUK_ERROR_RANGE((thr), DUK_STR_INVALID_LENGTH); \
10341#define DUK_DCERROR_RANGE_INVALID_LENGTH(thr) \
10343 DUK_ERROR_RANGE_INVALID_LENGTH((thr)); \
10346#define DUK_ERROR_RANGE(thr, msg) \
10348 duk_err_range((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO, (msg)); \
10350#define DUK_ERROR_EVAL(thr, msg) \
10352 DUK_ERROR((thr), DUK_ERR_EVAL_ERROR, (msg)); \
10354#define DUK_ERROR_REFERENCE(thr, msg) \
10356 DUK_ERROR((thr), DUK_ERR_REFERENCE_ERROR, (msg)); \
10358#define DUK_ERROR_SYNTAX(thr, msg) \
10360 DUK_ERROR((thr), DUK_ERR_SYNTAX_ERROR, (msg)); \
10362#define DUK_ERROR_TYPE_INVALID_ARGS(thr) \
10364 duk_err_type_invalid_args((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO); \
10366#define DUK_DCERROR_TYPE_INVALID_ARGS(thr) \
10368 DUK_ERROR_TYPE_INVALID_ARGS((thr)); \
10371#define DUK_ERROR_TYPE_INVALID_STATE(thr) \
10373 duk_err_type_invalid_state((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO); \
10375#define DUK_DCERROR_TYPE_INVALID_STATE(thr) \
10377 DUK_ERROR_TYPE_INVALID_STATE((thr)); \
10380#define DUK_ERROR_TYPE_INVALID_TRAP_RESULT(thr) \
10382 duk_err_type_invalid_trap_result((thr), DUK_FILE_MACRO, (duk_int_t) DUK_LINE_MACRO); \
10384#define DUK_DCERROR_TYPE_INVALID_TRAP_RESULT(thr) \
10386 DUK_ERROR_TYPE((thr), DUK_STR_INVALID_TRAP_RESULT); \
10388#define DUK_ERROR_TYPE(thr, msg) \
10390 DUK_ERROR((thr), DUK_ERR_TYPE_ERROR, (msg)); \
10392#define DUK_ERROR_URI(thr, msg) \
10394 DUK_ERROR((thr), DUK_ERR_URI_ERROR, (msg)); \
10399#define DUK_ERROR_REQUIRE_TYPE_INDEX(thr, idx, expectname, lowmemstr) \
10401 duk_err_type((thr)); \
10404#define DUK_ERROR_INTERNAL(thr) \
10406 duk_err_error((thr)); \
10408#define DUK_DCERROR_INTERNAL(thr) \
10410 DUK_UNREF((thr)); \
10411 return DUK_RET_ERROR; \
10413#define DUK_ERROR_ALLOC_FAILED(thr) \
10415 duk_err_error((thr)); \
10417#define DUK_ERROR_UNSUPPORTED(thr) \
10419 duk_err_error((thr)); \
10421#define DUK_DCERROR_UNSUPPORTED(thr) \
10423 DUK_UNREF((thr)); \
10424 return DUK_RET_ERROR; \
10426#define DUK_ERROR_ERROR(thr, msg) \
10428 duk_err_error((thr)); \
10430#define DUK_ERROR_RANGE_INDEX(thr, idx) \
10432 duk_err_range((thr)); \
10434#define DUK_ERROR_RANGE_PUSH_BEYOND(thr) \
10436 duk_err_range((thr)); \
10438#define DUK_ERROR_RANGE_INVALID_ARGS(thr) \
10440 duk_err_range((thr)); \
10442#define DUK_DCERROR_RANGE_INVALID_ARGS(thr) \
10444 DUK_UNREF((thr)); \
10445 return DUK_RET_RANGE_ERROR; \
10447#define DUK_ERROR_RANGE_INVALID_COUNT(thr) \
10449 duk_err_range((thr)); \
10451#define DUK_DCERROR_RANGE_INVALID_COUNT(thr) \
10453 DUK_UNREF((thr)); \
10454 return DUK_RET_RANGE_ERROR; \
10456#define DUK_ERROR_RANGE_INVALID_LENGTH(thr) \
10458 duk_err_range((thr)); \
10460#define DUK_DCERROR_RANGE_INVALID_LENGTH(thr) \
10462 DUK_UNREF((thr)); \
10463 return DUK_RET_RANGE_ERROR; \
10465#define DUK_ERROR_RANGE(thr, msg) \
10467 duk_err_range((thr)); \
10469#define DUK_ERROR_EVAL(thr, msg) \
10471 duk_err_eval((thr)); \
10473#define DUK_ERROR_REFERENCE(thr, msg) \
10475 duk_err_reference((thr)); \
10477#define DUK_ERROR_SYNTAX(thr, msg) \
10479 duk_err_syntax((thr)); \
10481#define DUK_ERROR_TYPE_INVALID_ARGS(thr) \
10483 duk_err_type((thr)); \
10485#define DUK_DCERROR_TYPE_INVALID_ARGS(thr) \
10487 DUK_UNREF((thr)); \
10488 return DUK_RET_TYPE_ERROR; \
10490#define DUK_ERROR_TYPE_INVALID_STATE(thr) \
10492 duk_err_type((thr)); \
10494#define DUK_DCERROR_TYPE_INVALID_STATE(thr) \
10496 duk_err_type((thr)); \
10498#define DUK_ERROR_TYPE_INVALID_TRAP_RESULT(thr) \
10500 duk_err_type((thr)); \
10502#define DUK_DCERROR_TYPE_INVALID_TRAP_RESULT(thr) \
10504 DUK_UNREF((thr)); \
10505 return DUK_RET_TYPE_ERROR; \
10507#define DUK_ERROR_TYPE_INVALID_TRAP_RESULT(thr) \
10509 duk_err_type((thr)); \
10511#define DUK_ERROR_TYPE(thr, msg) \
10513 duk_err_type((thr)); \
10515#define DUK_ERROR_URI(thr, msg) \
10517 duk_err_uri((thr)); \
10531#if defined(DUK_USE_ASSERTIONS)
10537#define DUK_ASSERT(x) \
10540 DUK_FATAL_WITHOUT_CONTEXT("assertion failed: " #x " (" DUK_FILE_MACRO \
10541 ":" DUK_MACRO_STRINGIFY(DUK_LINE_MACRO) ")"); \
10546#define DUK_ASSERT_EXPR(x) \
10547 ((void) ((x) ? 0 : \
10548 (DUK_FATAL_WITHOUT_CONTEXT("assertion failed: " #x " (" DUK_FILE_MACRO \
10549 ":" DUK_MACRO_STRINGIFY(DUK_LINE_MACRO) ")"), \
10554#define DUK_ASSERT(x) \
10558#define DUK_ASSERT_EXPR(x) ((void) 0)
10565#define DUK_ASSERT_DISABLE(x) \
10573#if defined(DUK_USE_ASSERTIONS) && defined(DUK_USE_REFERENCE_COUNTING)
10574#define DUK_ASSERT_REFCOUNT_NONZERO_HEAPHDR(h) \
10576 DUK_ASSERT((h) == NULL || DUK_HEAPHDR_GET_REFCOUNT((duk_heaphdr *) (h)) > 0); \
10578#define DUK_ASSERT_REFCOUNT_NONZERO_TVAL(tv) \
10580 if ((tv) != NULL && DUK_TVAL_IS_HEAP_ALLOCATED((tv))) { \
10581 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT(DUK_TVAL_GET_HEAPHDR((tv))) > 0); \
10585#define DUK_ASSERT_REFCOUNT_NONZERO_HEAPHDR(h)
10586#define DUK_ASSERT_REFCOUNT_NONZERO_TVAL(tv)
10589#define DUK_ASSERT_TOP(ctx, n) DUK_ASSERT((duk_idx_t) duk_get_top((ctx)) == (duk_idx_t) (n))
10591#if defined(DUK_USE_ASSERTIONS) && defined(DUK_USE_PACKED_TVAL)
10592#define DUK_ASSERT_DOUBLE_IS_NORMALIZED(dval) \
10594 duk_double_union duk__assert_tmp_du; \
10595 duk__assert_tmp_du.d = (dval); \
10596 DUK_ASSERT(DUK_DBLUNION_IS_NORMALIZED(&duk__assert_tmp_du)); \
10599#define DUK_ASSERT_DOUBLE_IS_NORMALIZED(dval)
10602#define DUK_ASSERT_VS_SPACE(thr) DUK_ASSERT(thr->valstack_top < thr->valstack_end)
10609#if defined(DUK_USE_ASSERTIONS)
10610#define DUK_ASSERT_SET_GARBAGE(ptr, size) \
10612 duk_memset_unsafe((void *) (ptr), 0x5a, size); \
10615#define DUK_ASSERT_SET_GARBAGE(ptr, size) \
10628#define DUK_VALSTACK_ASSERT_EXTRA \
10632#if defined(DUK_USE_ASSERTIONS)
10633#define DUK_ASSERT_VALSTACK_SPACE(thr, n) \
10635 DUK_ASSERT((thr) != NULL); \
10636 DUK_ASSERT((thr)->valstack_end - (thr)->valstack_top >= (n) + DUK_VALSTACK_ASSERT_EXTRA); \
10639#define DUK_ASSERT_VALSTACK_SPACE(thr, n)
10646#if defined(DUK_USE_VERBOSE_ERRORS)
10655#if defined(DUK_USE_VERBOSE_ERRORS)
10659 const char *filename,
10667#define DUK_AUGMENT_FLAG_NOBLAME_FILELINE (1U << 0)
10668#define DUK_AUGMENT_FLAG_SKIP_ONE (1U << 1)
10670#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
10673 const char *filename,
10677#if defined(DUK_USE_AUGMENT_ERROR_THROW)
10681#if defined(DUK_USE_VERBOSE_ERRORS)
10682#if defined(DUK_USE_PARANOID_ERRORS)
10684 const char *filename,
10687 const char *expect_name));
10690 const char *filename,
10693 const char *expect_name));
10722#if defined(DUK_USE_DEBUGGER_SUPPORT)
10734#if !defined(DUK_UNICODE_H_INCLUDED)
10735#define DUK_UNICODE_H_INCLUDED
10741#define DUK_UNICODE_MAX_XUTF8_LENGTH 7
10742#define DUK_UNICODE_MAX_XUTF8_BMP_LENGTH 3
10743#define DUK_UNICODE_MAX_CESU8_LENGTH 6
10744#define DUK_UNICODE_MAX_CESU8_BMP_LENGTH 3
10753#define DUK_UNICODE_CP_ZWNJ 0x200cL
10754#define DUK_UNICODE_CP_ZWJ 0x200dL
10755#define DUK_UNICODE_CP_REPLACEMENT_CHARACTER \
10770#define DUK_ASC_NUL 0x00
10771#define DUK_ASC_SOH 0x01
10772#define DUK_ASC_STX 0x02
10773#define DUK_ASC_ETX 0x03
10774#define DUK_ASC_EOT 0x04
10775#define DUK_ASC_ENQ 0x05
10776#define DUK_ASC_ACK 0x06
10777#define DUK_ASC_BEL 0x07
10778#define DUK_ASC_BS 0x08
10779#define DUK_ASC_HT 0x09
10780#define DUK_ASC_LF 0x0a
10781#define DUK_ASC_VT 0x0b
10782#define DUK_ASC_FF 0x0c
10783#define DUK_ASC_CR 0x0d
10784#define DUK_ASC_SO 0x0e
10785#define DUK_ASC_SI 0x0f
10786#define DUK_ASC_DLE 0x10
10787#define DUK_ASC_DC1 0x11
10788#define DUK_ASC_DC2 0x12
10789#define DUK_ASC_DC3 0x13
10790#define DUK_ASC_DC4 0x14
10791#define DUK_ASC_NAK 0x15
10792#define DUK_ASC_SYN 0x16
10793#define DUK_ASC_ETB 0x17
10794#define DUK_ASC_CAN 0x18
10795#define DUK_ASC_EM 0x19
10796#define DUK_ASC_SUB 0x1a
10797#define DUK_ASC_ESC 0x1b
10798#define DUK_ASC_FS 0x1c
10799#define DUK_ASC_GS 0x1d
10800#define DUK_ASC_RS 0x1e
10801#define DUK_ASC_US 0x1f
10802#define DUK_ASC_SPACE 0x20
10803#define DUK_ASC_EXCLAMATION 0x21
10804#define DUK_ASC_DOUBLEQUOTE 0x22
10805#define DUK_ASC_HASH 0x23
10806#define DUK_ASC_DOLLAR 0x24
10807#define DUK_ASC_PERCENT 0x25
10808#define DUK_ASC_AMP 0x26
10809#define DUK_ASC_SINGLEQUOTE 0x27
10810#define DUK_ASC_LPAREN 0x28
10811#define DUK_ASC_RPAREN 0x29
10812#define DUK_ASC_STAR 0x2a
10813#define DUK_ASC_PLUS 0x2b
10814#define DUK_ASC_COMMA 0x2c
10815#define DUK_ASC_MINUS 0x2d
10816#define DUK_ASC_PERIOD 0x2e
10817#define DUK_ASC_SLASH 0x2f
10818#define DUK_ASC_0 0x30
10819#define DUK_ASC_1 0x31
10820#define DUK_ASC_2 0x32
10821#define DUK_ASC_3 0x33
10822#define DUK_ASC_4 0x34
10823#define DUK_ASC_5 0x35
10824#define DUK_ASC_6 0x36
10825#define DUK_ASC_7 0x37
10826#define DUK_ASC_8 0x38
10827#define DUK_ASC_9 0x39
10828#define DUK_ASC_COLON 0x3a
10829#define DUK_ASC_SEMICOLON 0x3b
10830#define DUK_ASC_LANGLE 0x3c
10831#define DUK_ASC_EQUALS 0x3d
10832#define DUK_ASC_RANGLE 0x3e
10833#define DUK_ASC_QUESTION 0x3f
10834#define DUK_ASC_ATSIGN 0x40
10835#define DUK_ASC_UC_A 0x41
10836#define DUK_ASC_UC_B 0x42
10837#define DUK_ASC_UC_C 0x43
10838#define DUK_ASC_UC_D 0x44
10839#define DUK_ASC_UC_E 0x45
10840#define DUK_ASC_UC_F 0x46
10841#define DUK_ASC_UC_G 0x47
10842#define DUK_ASC_UC_H 0x48
10843#define DUK_ASC_UC_I 0x49
10844#define DUK_ASC_UC_J 0x4a
10845#define DUK_ASC_UC_K 0x4b
10846#define DUK_ASC_UC_L 0x4c
10847#define DUK_ASC_UC_M 0x4d
10848#define DUK_ASC_UC_N 0x4e
10849#define DUK_ASC_UC_O 0x4f
10850#define DUK_ASC_UC_P 0x50
10851#define DUK_ASC_UC_Q 0x51
10852#define DUK_ASC_UC_R 0x52
10853#define DUK_ASC_UC_S 0x53
10854#define DUK_ASC_UC_T 0x54
10855#define DUK_ASC_UC_U 0x55
10856#define DUK_ASC_UC_V 0x56
10857#define DUK_ASC_UC_W 0x57
10858#define DUK_ASC_UC_X 0x58
10859#define DUK_ASC_UC_Y 0x59
10860#define DUK_ASC_UC_Z 0x5a
10861#define DUK_ASC_LBRACKET 0x5b
10862#define DUK_ASC_BACKSLASH 0x5c
10863#define DUK_ASC_RBRACKET 0x5d
10864#define DUK_ASC_CARET 0x5e
10865#define DUK_ASC_UNDERSCORE 0x5f
10866#define DUK_ASC_GRAVE 0x60
10867#define DUK_ASC_LC_A 0x61
10868#define DUK_ASC_LC_B 0x62
10869#define DUK_ASC_LC_C 0x63
10870#define DUK_ASC_LC_D 0x64
10871#define DUK_ASC_LC_E 0x65
10872#define DUK_ASC_LC_F 0x66
10873#define DUK_ASC_LC_G 0x67
10874#define DUK_ASC_LC_H 0x68
10875#define DUK_ASC_LC_I 0x69
10876#define DUK_ASC_LC_J 0x6a
10877#define DUK_ASC_LC_K 0x6b
10878#define DUK_ASC_LC_L 0x6c
10879#define DUK_ASC_LC_M 0x6d
10880#define DUK_ASC_LC_N 0x6e
10881#define DUK_ASC_LC_O 0x6f
10882#define DUK_ASC_LC_P 0x70
10883#define DUK_ASC_LC_Q 0x71
10884#define DUK_ASC_LC_R 0x72
10885#define DUK_ASC_LC_S 0x73
10886#define DUK_ASC_LC_T 0x74
10887#define DUK_ASC_LC_U 0x75
10888#define DUK_ASC_LC_V 0x76
10889#define DUK_ASC_LC_W 0x77
10890#define DUK_ASC_LC_X 0x78
10891#define DUK_ASC_LC_Y 0x79
10892#define DUK_ASC_LC_Z 0x7a
10893#define DUK_ASC_LCURLY 0x7b
10894#define DUK_ASC_PIPE 0x7c
10895#define DUK_ASC_RCURLY 0x7d
10896#define DUK_ASC_TILDE 0x7e
10897#define DUK_ASC_DEL 0x7f
10906#define DUK_LOWERCASE_CHAR_ASCII(x) ((x) | 0x20)
10912#if defined(DUK_USE_SOURCE_NONBMP)
10923extern const duk_uint8_t duk_unicode_ids_noabmp[625];
10926#if defined(DUK_USE_SOURCE_NONBMP)
10937extern const duk_uint8_t duk_unicode_ids_m_let_noabmp[24];
10940#if defined(DUK_USE_SOURCE_NONBMP)
10951extern const duk_uint8_t duk_unicode_idp_m_ids_noabmp[358];
10961#if defined(DUK_USE_REGEXP_CANON_WORKAROUND)
10969#if defined(DUK_USE_REGEXP_CANON_BITMAP)
10974#define DUK_CANON_BITMAP_BLKSIZE 32
10975#define DUK_CANON_BITMAP_BLKSHIFT 5
10976#define DUK_CANON_BITMAP_BLKMASK 31
10985#if !defined(DUK_SINGLE_FILE)
11001#if defined(DUK_USE_ASSERTIONS)
11007 const duk_uint8_t **ptr,
11008 const duk_uint8_t *ptr_start,
11009 const duk_uint8_t *ptr_end,
11012 const duk_uint8_t **ptr,
11013 const duk_uint8_t *ptr_start,
11014 const duk_uint8_t *ptr_end);
11023#if defined(DUK_USE_REGEXP_SUPPORT)
11034#if !defined(DUK_JSON_H_INCLUDED)
11035#define DUK_JSON_H_INCLUDED
11038#define DUK_JSON_FLAG_ASCII_ONLY (1U << 0)
11039#define DUK_JSON_FLAG_AVOID_KEY_QUOTES (1U << 1)
11040#define DUK_JSON_FLAG_EXT_CUSTOM (1U << 2)
11041#define DUK_JSON_FLAG_EXT_COMPATIBLE (1U << 3)
11044#define DUK_JSON_ENC_REQSTACK 32
11047#define DUK_JSON_DEC_REQSTACK 32
11050#define DUK_JSON_ENC_LOOPARRAY 64
11063#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
11071#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
11083 const duk_uint8_t *p;
11084 const duk_uint8_t *p_start;
11085 const duk_uint8_t *p_end;
11088#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
11103#if !defined(DUK_JS_H_INCLUDED)
11104#define DUK_JS_H_INCLUDED
11107#define DUK_CALL_FLAG_TAILCALL (1U << 0)
11108#define DUK_CALL_FLAG_CONSTRUCT (1U << 1)
11109#define DUK_CALL_FLAG_CALLED_AS_EVAL (1U << 2)
11110#define DUK_CALL_FLAG_ALLOW_ECMATOECMA (1U << 3)
11111#define DUK_CALL_FLAG_DIRECT_EVAL (1U << 4)
11112#define DUK_CALL_FLAG_CONSTRUCT_PROXY (1U << 5)
11113#define DUK_CALL_FLAG_DEFAULT_INSTANCE_UPDATED \
11117#define DUK_EQUALS_FLAG_SAMEVALUE (1U << 0)
11118#define DUK_EQUALS_FLAG_STRICT (1U << 1)
11121#define DUK_COMPARE_FLAG_NEGATE (1U << 0)
11122#define DUK_COMPARE_FLAG_EVAL_LEFT_FIRST (1U << 1)
11133#if !defined(DUK_USE_HSTRING_ARRIDX)
11139 const duk_uint8_t *buf2,
11148#if defined(DUK_USE_SYMBOL_BUILTIN)
11160#define duk_js_equals(thr, tv_x, tv_y) duk_js_equals_helper((thr), (tv_x), (tv_y), 0)
11161#define duk_js_strict_equals(tv_x, tv_y) duk_js_equals_helper(NULL, (tv_x), (tv_y), DUK_EQUALS_FLAG_STRICT)
11162#define duk_js_samevalue(tv_x, tv_y) duk_js_equals_helper(NULL, (tv_x), (tv_y), DUK_EQUALS_FLAG_SAMEVALUE)
11165#define duk_js_lessthan(thr, tv_x, tv_y) duk_js_compare_helper((thr), (tv_x), (tv_Y), DUK_COMPARE_FLAG_EVAL_LEFT_FIRST)
11168#define duk_js_greaterthan(thr, tv_x, tv_y) duk_js_compare_helper((thr), (tv_y), (tv_x), 0)
11171#define duk_js_lessthanorequal(thr, tv_x, tv_y) duk_js_compare_helper((thr), (tv_y), (tv_x), DUK_COMPARE_FLAG_NEGATE)
11174#define duk_js_greaterthanorequal(thr, tv_x, tv_y) \
11175 duk_js_compare_helper((thr), (tv_x), (tv_y), DUK_COMPARE_FLAG_EVAL_LEFT_FIRST | DUK_COMPARE_FLAG_NEGATE)
11224#if defined(DUK_USE_VERBOSE_ERRORS)
11238#if !defined(DUK_NUMCONV_H_INCLUDED)
11239#define DUK_NUMCONV_H_INCLUDED
11244#define DUK_N2S_FLAG_FIXED_FORMAT (1U << 0)
11247#define DUK_N2S_FLAG_FORCE_EXP (1U << 1)
11254#define DUK_N2S_FLAG_NO_ZERO_PAD (1U << 2)
11260#define DUK_N2S_FLAG_FRACTION_DIGITS (1U << 3)
11274#define DUK_S2N_MAX_EXPONENT 10000000L
11277#define DUK_S2N_FLAG_TRIM_WHITE (1U << 0)
11280#define DUK_S2N_FLAG_ALLOW_EXP (1U << 1)
11283#define DUK_S2N_FLAG_ALLOW_GARBAGE (1U << 2)
11286#define DUK_S2N_FLAG_ALLOW_PLUS (1U << 3)
11289#define DUK_S2N_FLAG_ALLOW_MINUS (1U << 4)
11292#define DUK_S2N_FLAG_ALLOW_INF (1U << 5)
11295#define DUK_S2N_FLAG_ALLOW_FRAC (1U << 6)
11298#define DUK_S2N_FLAG_ALLOW_NAKED_FRAC (1U << 7)
11301#define DUK_S2N_FLAG_ALLOW_EMPTY_FRAC (1U << 8)
11304#define DUK_S2N_FLAG_ALLOW_EMPTY_AS_ZERO (1U << 9)
11307#define DUK_S2N_FLAG_ALLOW_LEADING_ZERO (1U << 10)
11312#define DUK_S2N_FLAG_ALLOW_AUTO_HEX_INT (1U << 11)
11317#define DUK_S2N_FLAG_ALLOW_AUTO_LEGACY_OCT_INT (1U << 12)
11322#define DUK_S2N_FLAG_ALLOW_AUTO_OCT_INT (1U << 13)
11327#define DUK_S2N_FLAG_ALLOW_AUTO_BIN_INT (1U << 14)
11346#if !defined(DUK_BUILTIN_PROTOS_H_INCLUDED)
11347#define DUK_BUILTIN_PROTOS_H_INCLUDED
11355#define DUK_BI_DATE_ISO8601_BUFSIZE 40
11365#if defined(DUK_USE_DATE_NOW_GETTIMEOFDAY)
11368#if defined(DUK_USE_DATE_NOW_TIME)
11371#if defined(DUK_USE_DATE_NOW_WINDOWS)
11374#if defined(DUK_USE_DATE_NOW_WINDOWS_SUBMS)
11377#if defined(DUK_USE_DATE_TZO_GMTIME_R) || defined(DUK_USE_DATE_TZO_GMTIME_S) || defined(DUK_USE_DATE_TZO_GMTIME)
11380#if defined(DUK_USE_DATE_TZO_WINDOWS)
11383#if defined(DUK_USE_DATE_TZO_WINDOWS_NO_DST)
11386#if defined(DUK_USE_DATE_PRS_STRPTIME)
11389#if defined(DUK_USE_DATE_PRS_GETDATE)
11392#if defined(DUK_USE_DATE_FMT_STRFTIME)
11399#if defined(DUK_USE_GET_MONOTONIC_TIME_CLOCK_GETTIME)
11402#if defined(DUK_USE_GET_MONOTONIC_TIME_WINDOWS_QPC)
11417#if defined(DUK_USE_ES6_PROXY)
11427#if !defined(DUK_SELFTEST_H_INCLUDED)
11428#define DUK_SELFTEST_H_INCLUDED
11430#if defined(DUK_USE_SELF_TESTS)
11441#if defined(DUK_USE_COMPUTED_NAN)
11445#if defined(DUK_USE_COMPUTED_INFINITY)
11449#if defined(DUK_USE_REPL_FPCLASSIFY)
11457 if (expt > 0x0000UL && expt < 0x7ff0UL) {
11462 mzero = (u.
ui[DUK_DBL_IDX_UI1] == 0 && (u.
ui[DUK_DBL_IDX_UI0] & 0x000fffffUL) == 0);
11463 if (expt == 0x0000UL) {
11481#if defined(DUK_USE_REPL_SIGNBIT)
11485 return (
int) (u.
uc[DUK_DBL_IDX_UC0] & 0x80UL);
11489#if defined(DUK_USE_REPL_ISFINITE)
11500#if defined(DUK_USE_REPL_ISNAN)
11507#if defined(DUK_USE_REPL_ISINF)
11519#if defined(DUK_USE_DEBUG)
11529#if !defined(DUK_USE_DEBUG_WRITE)
11530#error debugging enabled (DUK_USE_DEBUG) but DUK_USE_DEBUG_WRITE not defined
11533#define DUK__DEBUG_BUFSIZE DUK_USE_DEBUG_BUFSIZE
11535#if defined(DUK_USE_VARIADIC_MACROS)
11540 const char *arg_file;
11542 const char *arg_func;
11543 const char *arg_msg;
11544 char buf[DUK__DEBUG_BUFSIZE];
11548 duk_memzero((
void *) buf, (
size_t) DUK__DEBUG_BUFSIZE);
11549 duk_debug_vsnprintf(buf, DUK__DEBUG_BUFSIZE - 1, fmt, ap);
11551 arg_level = (long) level;
11552 arg_file = (
const char *) file;
11553 arg_line = (long)
line;
11554 arg_func = (
const char *) func;
11555 arg_msg = (
const char *) buf;
11556 DUK_USE_DEBUG_WRITE(arg_level, arg_file, arg_line, arg_func, arg_msg);
11563DUK_INTERNAL char duk_debug_file_stash[DUK_DEBUG_STASH_SIZE];
11565DUK_INTERNAL char duk_debug_func_stash[DUK_DEBUG_STASH_SIZE];
11568DUK_INTERNAL void duk_debug_log(
const char *fmt, ...) {
11571 const char *arg_file;
11573 const char *arg_func;
11574 const char *arg_msg;
11575 char buf[DUK__DEBUG_BUFSIZE];
11579 duk_memzero((
void *) buf, (
size_t) DUK__DEBUG_BUFSIZE);
11580 duk_debug_vsnprintf(buf, DUK__DEBUG_BUFSIZE - 1, fmt, ap);
11582 arg_level = (long) duk_debug_level_stash;
11583 arg_file = (
const char *) duk_debug_file_stash;
11584 arg_line = (long) duk_debug_line_stash;
11585 arg_func = (
const char *) duk_debug_func_stash;
11586 arg_msg = (
const char *) buf;
11587 DUK_USE_DEBUG_WRITE(arg_level, arg_file, arg_line, arg_func, arg_msg);
11603#undef DUK__DEBUG_BUFSIZE
11610#if defined(DUK_USE_ASSERTIONS)
11611#define DUK__REFCINIT(refc) 0 , (refc)
11613#define DUK__REFCINIT(refc) (refc)
11616#if defined(DUK_USE_ROM_STRINGS)
11617#error ROM support not enabled, rerun configure.py with --rom-support
1162079,40,209,144,168,105,6,78,54,139,89,185,44,48,46,90,120,8,154,140,35,103,
1162135,113,193,73,5,52,112,180,104,166,135,52,188,4,98,12,27,146,156,80,211,31,
11622129,115,150,64,52,220,109,24,18,68,156,24,38,67,114,36,55,9,119,151,132,
11623140,93,18,113,128,153,201,212,201,205,2,248,8,196,24,224,104,82,146,40,224,
11624193,48,114,168,37,147,196,54,123,28,4,98,12,43,148,67,103,177,192,70,32,
11625196,121,68,54,123,28,18,192,199,144,124,4,98,12,43,136,108,244,117,184,8,
11626196,24,95,40,134,207,71,91,128,140,65,133,113,13,158,158,151,1,24,131,11,
11627229,16,217,233,233,112,17,136,48,206,21,110,4,244,244,184,8,196,24,103,10,
11628183,2,122,218,156,4,98,12,24,203,112,64,179,113,193,79,8,218,155,131,32,
11629184,70,212,220,13,10,82,68,252,123,144,217,146,38,228,207,18,0,100,37,64,
11630178,212,11,161,17,104,162,96,10,200,193,57,165,65,169,16,5,100,81,27,70,18,
1163132,10,200,68,185,13,116,221,197,184,64,89,57,41,197,13,49,234,5,208,156,
11632113,87,55,118,147,20,187,56,161,166,92,221,212,73,210,236,226,134,153,115,
11633119,76,201,203,179,138,26,99,73,212,136,136,164,25,174,137,56,32,72,137,
11634101,23,52,45,13,34,86,9,79,136,104,201,114,149,96,52,138,134,140,151,75,
11635226,233,186,120,121,22,39,54,83,141,5,55,68,236,36,164,3,16,225,115,150,64,
1163652,205,163,2,72,154,83,138,26,99,75,12,11,150,103,5,36,20,211,70,140,133,
1163767,72,49,241,160,227,81,196,52,168,106,39,132,252,183,136,105,80,212,79,2,
11638249,110,128,126,88,95,133,109,237,237,237,151,235,127,46,249,119,203,190,
11639186,206,33,181,2,208,61,190,12,19,34,65,19,81,132,108,228,97,1,107,33,12,
1164032,45,100,137,64,247,175,9,19,155,41,198,130,155,134,69,146,100,227,226,
11641231,146,51,192,204,73,140,224,145,221,102,241,68,196,169,248,30,75,12,11,
11642151,242,233,187,143,138,24,137,162,164,255,253,63,3,201,97,129,114,254,92,
11643112,75,136,108,166,6,136,159,255,167,224,121,44,48,46,95,203,166,238,74,
11644113,67,77,201,128,223,255,223,224,121,44,48,46,95,203,145,46,9,205,16,39,
11645201,62,36,0,192,21,147,255,238,145,39,199,197,211,116,240,242,113,197,78,
11646214,211,226,233,187,107,105,19,119,37,56,161,166,52,221,212,201,205,36,240,
11647242,16,96,152,12,26,20,164,137,150,70,154,103,28,137,50,202,96,18,132,241,
1164841,104,105,56,218,48,36,138,183,57,56,128,68,24,38,2,52,12,34,10,133,147,
11649141,3,8,119,185,13,153,34,125,206,76,17,49,38,93,206,52,151,154,119,56,28,
1165076,130,112,200,141,206,21,209,96,23,35,238,114,160,139,0,243,238,114,78,
11651164,68,68,110,113,226,210,90,26,66,110,113,128,121,247,57,80,68,141,170,
11652183,56,84,52,11,70,73,19,110,114,160,93,8,113,57,143,66,200,84,53,244,154,
1165373,24,240,81,32,38,68,18,49,228,207,23,88,100,109,70,114,92,193,4,137,173,
11654168,36,220,73,19,247,247,182,168,209,144,187,223,58,156,104,79,190,183,127,
11655123,105,160,110,247,206,167,26,19,239,173,223,222,218,67,75,189,243,169,
11656198,132,251,235,183,247,182,154,134,151,123,231,83,141,9,247,215,111,239,
11657109,22,141,22,247,206,167,26,19,239,172,223,218,45,26,47,157,78,52,39,223,
1165874,24,144,10,32,129,34,20,64,152,142,129,57,179,67,104,68,12,129,161,140,
1165972,156,100,40,40,185,152,100,89,38,65,13,196,34,228,67,149,13,2,215,129,
11660149,209,65,104,209,77,14,104,144,81,33,170,67,101,48,52,68,113,70,210,88,
11661209,36,233,22,154,86,68,196,114,76,232,145,102,120,186,195,156,112,105,225,
11662228,113,71,80,68,162,115,101,50,85,200,25,108,116,44,132,178,38,114,137,96,
11663148,136,70,209,134,37,222,232,204,228,188,200,209,200,200,99,221,25,150,84,
11664121,34,70,209,107,36,227,66,20,160,92,136,164,49,235,35,8,217,201,40,108,
11665201,18,128,68,26,201,51,188,2,80,12,67,190,40,168,38,68,190,46,153,5,50,12,
11666207,160,86,129,26,83,4,208,34,225,4,88,192,
11670#if defined(DUK_USE_ROM_OBJECTS)
11671#error ROM support not enabled, rerun configure.py with --rom-support
11861#if defined(DUK_USE_DOUBLE_LE)
11862DUK_INTERNAL const duk_uint8_t duk_builtins_data[4281] = {
11863144,148,105,226,32,68,52,228,254,12,104,202,37,132,52,167,194,138,105,245,
11864124,57,28,211,57,18,64,52,239,126,44,138,111,175,241,164,19,87,145,30,33,
11865167,22,145,159,8,211,139,9,225,42,5,240,145,139,163,163,8,211,139,10,228,
1186664,211,19,132,140,93,29,56,70,156,88,119,34,66,146,36,104,137,194,70,46,
11867142,172,35,78,44,47,146,195,102,11,240,145,139,163,175,8,211,139,9,228,240,
11868242,112,145,139,163,179,8,211,139,8,237,34,130,118,49,116,118,225,26,48,0,
118691,98,29,201,158,46,183,39,135,147,132,140,93,16,132,76,66,33,8,66,16,132,
1187033,8,66,26,180,105,97,167,68,150,34,33,154,112,0,1,91,247,35,79,111,237,
11871198,174,232,47,31,23,95,17,13,31,249,96,211,49,50,53,214,77,141,24,0,0,181,
1187210,228,240,242,15,128,140,65,128,134,188,0,0,90,167,97,181,224,0,2,213,62,
1187353,224,0,2,213,66,237,120,0,0,181,81,204,107,192,0,5,170,150,67,94,0,0,45,
1187484,245,90,240,0,1,106,169,162,215,128,0,11,85,93,150,188,0,0,90,171,111,53,
11875109,22,162,26,48,0,1,84,23,201,146,243,225,26,39,12,145,136,104,192,0,5,61,
1187611,228,201,121,240,100,19,134,72,196,33,195,14,40,203,112,64,190,76,232,
11877145,153,136,0,0,0,0,0,0,31,15,249,152,0,0,0,0,0,0,30,15,249,120,144,13,96,
11878155,194,56,80,206,36,67,141,20,228,70,57,81,206,100,131,156,39,132,168,23,
11879194,70,46,137,208,21,200,129,166,39,9,24,186,39,72,119,34,66,146,36,104,
11880137,194,70,46,137,212,23,201,97,179,5,248,72,197,209,58,194,121,60,60,156,
1188136,98,232,157,129,29,164,80,78,198,46,137,218,146,121,25,71,146,9,209,5,
11882209,61,48,126,14,138,152,30,67,186,23,143,139,175,131,202,135,228,72,85,
11883144,83,60,179,30,94,209,233,102,30,98,105,230,103,30,114,121,231,104,30,
11884122,137,231,233,30,130,153,232,106,30,138,169,232,235,30,144,67,193,25,19,
11885136,108,207,30,41,224,140,137,194,173,192,153,228,5,242,100,188,248,70,137,
11886195,36,79,78,47,147,37,231,193,144,78,25,34,122,145,111,36,74,232,176,13,
1188717,61,234,226,93,207,148,160,84,75,141,7,27,161,32,33,18,225,80,212,76,154,
118882,2,70,65,56,100,237,34,140,209,2,67,32,156,50,118,145,64,186,230,61,205,
1188935,103,155,32,36,141,19,134,78,210,40,206,16,36,70,137,195,39,105,20,11,
11890174,99,220,210,54,121,210,1,137,33,1,228,207,16,17,70,146,66,3,201,164,32,
118910,65,112,152,56,196,159,31,23,77,211,195,201,199,23,160,72,214,246,81,6,12,
1189273,241,214,111,31,23,60,145,158,56,50,72,81,67,230,232,242,80,19,49,39,199,
1189389,188,124,92,242,70,120,227,64,194,75,154,72,12,9,73,6,111,21,120,12,40,
11894144,19,39,25,0,225,144,168,105,56,248,185,228,140,241,200,96,64,100,42,26,
1189578,62,46,121,35,52,18,92,116,1,36,64,47,158,64,49,98,66,100,156,242,65,23,
11896196,149,35,103,194,94,100,108,144,230,203,156,64,66,37,201,16,11,32,249,
11897132,4,34,92,44,93,146,55,152,72,24,137,112,151,153,27,36,5,100,229,144,8,
11898162,98,92,210,5,76,73,241,214,111,31,23,60,145,158,57,44,48,46,92,185,164,
11899160,72,151,41,0,50,107,179,244,59,36,93,127,92,6,19,172,3,11,216,0,56,224,
11900151,29,102,241,241,115,201,25,227,164,64,106,37,199,197,211,116,240,242,
11901113,197,233,144,40,248,185,228,140,241,196,75,132,109,24,72,128,43,39,84,
11902129,13,173,161,144,168,105,56,98,78,100,142,214,215,69,1,13,173,161,144,
11903168,105,57,34,78,100,142,214,215,69,16,67,107,105,110,114,168,254,24,147,
11904153,35,181,181,212,32,67,107,105,110,114,168,254,72,147,153,35,181,181,212,
1190536,65,130,3,144,8,26,252,200,13,30,85,16,16,64,90,242,231,192,64,161,163,
11906203,31,26,172,193,17,4,23,105,159,96,27,172,251,16,32,196,4,14,137,112,17,
11907136,48,164,28,134,80,215,202,1,132,130,8,12,39,52,64,155,31,24,56,36,1,189,
11908207,132,0,35,233,35,195,62,3,196,149,36,100,72,160,2,200,232,44,227,0,11,
1190937,160,68,142,128,36,157,25,200,32,26,79,90,4,73,43,192,122,54,71,65,103,
1191044,248,14,134,140,151,227,138,231,208,45,96,148,248,134,140,151,227,138,
11911231,240,1,255,254,10,74,146,56,128,104,4,147,152,72,6,144,28,174,143,8,1,
1191230,1,165,3,96,31,0,211,3,21,11,153,35,0,211,131,68,131,160,137,16,250,5,
11913196,131,160,137,200,160,199,156,67,248,0,255,255,65,140,10,48,177,115,56,
1191435,130,60,19,134,79,89,240,52,177,115,56,39,12,156,123,144,217,251,15,135,
1191534,167,30,20,170,154,255,232,12,47,244,0,97,28,17,224,39,238,32,40,71,4,
11916120,39,12,156,4,253,228,5,137,195,39,30,228,54,124,4,253,228,128,194,115,
1191768,9,252,15,128,232,104,201,126,56,191,35,64,90,193,41,241,13,25,47,199,23,
11918228,105,3,86,225,1,100,224,156,199,130,36,249,144,10,192,76,71,250,16,15,
1191918,61,96,17,62,200,3,72,128,136,143,247,32,22,75,64,137,248,64,22,79,90,39,
11920249,64,38,84,12,167,20,52,223,196,2,230,238,45,214,36,120,32,72,158,208,4,
11921102,238,45,194,2,201,197,186,196,143,4,9,19,218,0,92,221,202,61,228,143,4,
119229,19,218,8,35,55,113,110,16,22,78,81,239,36,120,32,72,158,208,64,73,197,12,
11923255,0,13,18,60,128,159,212,128,169,76,17,156,185,100,76,255,163,64,65,26,
1192457,114,200,153,255,70,144,33,13,18,232,50,75,226,104,6,149,3,41,199,246,
11925130,12,128,28,142,156,120,203,175,158,8,194,207,1,6,81,20,79,88,11,237,84,
1192611,161,32,127,255,255,255,255,255,247,191,137,235,16,221,170,129,116,36,0,
1192716,0,0,0,0,0,0,12,196,0,0,0,0,0,0,15,135,242,61,123,164,137,162,164,218,67,
1192874,134,162,120,128,0,0,0,0,0,1,224,254,71,173,33,129,52,84,155,72,105,80,
11929212,79,16,0,0,0,0,0,0,60,63,195,244,143,146,22,230,192,0,0,0,0,0,0,176,60,
1193033,214,2,251,82,1,73,180,134,204,134,36,96,127,255,255,255,255,255,159,161,
11931144,235,16,221,169,0,164,218,67,102,67,18,48,63,255,255,255,255,255,207,
11932240,196,60,17,145,56,134,204,241,226,158,8,200,156,42,220,9,158,65,196,34,
1193392,42,26,137,147,120,64,74,37,196,54,100,49,35,188,36,5,68,184,208,113,187,
11934194,80,212,75,146,1,73,196,54,100,49,35,188,38,57,37,56,240,0,0,0,0,0,0,0,
119350,32,235,248,68,48,156,2,24,94,24,0,243,119,10,139,144,123,242,3,102,238,
1193618,239,115,72,217,160,11,223,16,23,55,113,241,32,145,36,57,188,18,16,102,3,
119375,120,35,34,89,32,15,180,152,173,127,0,218,235,88,0,228,180,227,200,0,0,0,
119380,0,0,248,127,197,107,240,64,6,77,220,24,38,78,74,113,67,77,130,4,12,155,
11939185,52,48,156,148,226,134,155,4,10,194,96,129,132,166,238,45,194,2,201,193,
11940130,100,228,167,20,52,216,32,113,41,187,139,112,128,178,114,104,97,57,41,
11941197,13,54,8,32,48,216,32,130,195,224,130,19,97,124,134,23,6,0,57,137,62,77,
1194212,38,12,0,179,18,124,45,22,190,96,128,141,176,134,28,98,79,180,152,139,
11943218,45,124,193,1,27,97,16,32,196,159,24,230,204,246,194,40,89,137,62,210,
1194498,103,92,217,158,216,70,7,49,39,193,130,100,182,17,194,140,73,246,147,16,
11945250,9,146,216,72,6,49,39,193,131,22,194,72,73,137,62,210,98,31,65,139,97,
1194640,32,196,159,14,234,70,86,194,88,89,137,62,210,98,63,93,72,202,216,76,10,
1194749,39,198,33,180,153,37,108,38,134,152,147,237,38,38,117,13,164,201,43,97,
1194856,40,196,159,36,65,57,163,149,176,158,26,98,79,180,152,165,210,9,205,28,
11949173,133,0,243,18,124,98,22,180,72,130,115,71,43,97,68,72,196,159,105,49,51,
11950168,90,209,34,9,205,28,173,133,33,19,18,124,154,24,76,185,164,227,138,89,
1195118,119,0,7,145,39,201,161,132,188,64,124,137,62,49,11,90,36,65,57,163,149,
11952210,166,37,34,79,180,152,153,212,45,104,145,4,230,142,87,74,160,84,137,62,
1195372,130,115,71,43,171,234,134,200,147,237,38,41,116,130,115,71,43,171,235,5,
1195472,147,227,16,218,76,146,186,254,184,108,137,62,210,98,103,80,218,76,146,
11955186,254,192,68,137,62,29,212,140,174,207,178,23,34,79,180,152,143,215,82,
1195650,187,62,208,60,137,62,12,19,37,210,182,21,34,79,180,152,135,208,76,151,
1195774,224,68,137,62,49,205,153,238,175,186,23,34,79,180,152,153,215,54,103,
11958186,190,240,92,137,62,22,139,95,48,64,70,235,251,225,210,36,251,73,136,189,
11959162,215,204,16,17,186,255,2,14,98,79,152,32,35,108,48,64,242,36,249,130,2,
1196055,75,6,212,224,72,200,51,128,114,108,28,100,128,0,0,0,0,0,0,0,12,110,127,
1196148,98,115,249,201,117,243,249,195,21,159,206,38,47,63,156,86,8,75,144,94,
1196282,1,38,73,79,208,67,95,233,1,6,128,14,79,129,186,40,249,18,149,182,207,
11963144,200,155,188,248,204,105,184,207,142,199,137,175,201,0,159,72,10,5,21,
11964221,10,120,74,129,124,36,98,232,228,74,81,62,160,20,10,107,186,21,114,32,
11965105,137,194,70,46,142,68,165,19,235,1,64,170,187,161,119,34,66,146,36,104,
11966137,194,70,46,142,68,165,19,236,1,64,174,187,161,95,37,134,204,23,225,35,
1196723,71,34,82,137,246,128,160,89,93,208,167,147,195,201,194,70,46,142,68,165,
1196819,238,1,64,182,187,161,71,105,20,19,177,139,163,145,41,68,16,7,6,15,82,70,
1196972,115,96,0,0,0,0,0,27,234,32,91,60,165,195,201,194,8,134,149,216,162,0,
11970192,41,225,8,2,48,177,36,1,149,13,196,15,0,200,209,97,199,128,99,32,176,
11971195,192,113,57,143,0,167,133,32,230,80,28,202,139,175,238,2,48,189,192,20,
119721,119,80,87,193,186,129,89,56,72,197,209,200,193,185,35,23,71,109,13,219,
1197336,98,232,237,156,13,26,208,211,14,102,19,87,137,91,95,128,0,10,96,24,92,0,
119740,83,2,53,56,0,0,165,3,28,204,160,160,226,100,226,200,211,76,241,240,0,1,
11975102,8,22,75,64,137,73,20,230,105,133,7,19,39,22,70,154,103,143,128,0,11,48,
1197620,28,76,156,113,75,34,78,62,0,0,45,3,103,31,0,0,22,65,44,57,137,62,33,179,
11977216,162,152,192,131,18,124,162,27,61,138,41,108,32,196,159,16,217,232,235,
1197881,76,104,73,137,62,81,13,158,142,181,20,184,16,98,79,136,108,244,244,168,
11979166,56,36,196,159,40,134,207,79,74,138,93,10,49,39,194,173,192,158,158,149,
1198020,188,20,98,79,133,91,129,61,109,74,41,124,30,68,159,16,217,236,83,108,96,
1198168,137,62,81,13,158,197,54,182,17,34,79,136,108,244,117,169,182,52,38,68,
11982159,40,134,207,71,90,155,92,8,145,39,196,54,122,122,84,219,28,19,34,79,148,
1198367,103,167,165,77,174,133,72,147,225,86,224,79,79,74,155,94,10,145,39,194,
11984173,192,158,182,165,54,190,206,25,212,35,208,226,100,150,211,201,29,162,44,
11985140,35,103,0,0,0,0,0,0,3,192,252,206,25,228,35,208,226,100,150,211,201,29,
11986162,44,140,35,103,0,0,0,0,0,0,3,192,252,206,25,244,35,208,226,100,150,211,
11987201,29,162,44,140,35,103,0,0,0,0,0,0,3,192,252,206,26,4,35,208,226,100,150,
11988211,201,29,162,44,140,35,103,0,0,0,0,0,0,0,1,0,206,26,20,35,208,226,100,
11989150,211,201,29,162,44,140,35,103,0,0,0,0,0,0,0,1,0,206,26,36,35,208,226,
11990100,150,211,201,29,162,44,140,35,103,0,0,0,0,0,0,0,65,0,206,26,52,35,208,
11991226,100,150,211,201,29,162,44,140,35,103,0,0,0,0,0,0,0,65,0,206,26,68,35,
11992208,226,100,150,211,201,29,162,44,140,35,103,0,0,0,0,0,0,0,65,0,206,26,84,
1199335,208,226,100,150,211,201,29,162,44,140,35,103,0,0,0,0,0,0,0,129,0,195,
11994154,99,16,38,36,0,251,68,117,179,216,162,128,68,72,1,241,13,158,197,20,150,
1199525,18,0,125,162,58,217,232,235,117,100,162,136,25,18,0,125,162,58,217,232,
11996235,116,36,162,145,2,226,64,15,136,108,244,117,186,178,81,73,129,113,32,7,
11997196,54,122,58,221,9,40,165,64,200,144,3,237,17,214,207,79,75,171,37,20,80,
11998200,144,3,237,17,214,207,79,75,161,37,20,138,23,18,0,124,67,103,167,165,
11999213,146,138,77,11,137,0,62,33,179,211,210,232,73,69,42,133,196,128,31,10,
12000183,2,125,89,40,163,5,196,128,31,10,183,2,125,9,40,164,96,200,144,3,224,
12001221,64,172,157,89,40,163,134,68,128,31,6,234,5,100,232,73,69,35,133,68,128,
1200231,104,142,182,125,89,40,180,0,168,144,3,237,17,214,207,161,37,22,144,19,
1200318,0,124,67,103,213,146,139,80,9,137,0,62,33,179,232,73,69,172,5,90,40,153,
1200459,68,117,179,216,166,192,77,162,137,147,136,108,246,41,180,176,219,69,19,
1200539,104,142,182,122,58,221,89,41,178,6,218,40,153,59,68,117,179,209,214,232,
1200673,77,162,6,90,40,153,56,134,207,71,91,171,37,54,152,25,104,162,100,226,27,
1200761,29,110,132,148,218,160,109,162,137,147,180,71,91,61,61,46,172,148,217,
1200867,109,20,76,157,162,58,217,233,233,116,36,166,209,67,45,20,76,156,67,103,
12009167,165,213,146,155,77,12,180,81,50,113,13,158,158,151,66,74,109,84,50,209,
1201068,201,194,173,192,159,86,74,108,193,150,138,38,78,21,110,4,250,18,83,104,
12011193,182,138,38,78,13,212,10,201,213,146,155,56,109,162,137,147,131,117,2,
12012178,116,36,166,209,194,237,20,76,157,162,58,217,245,100,167,16,2,237,20,76,
12013157,162,58,217,244,36,167,18,2,173,20,76,156,67,103,213,146,156,80,10,180,
1201481,50,113,13,159,66,74,113,97,175,221,48,216,110,64,4,42,22,189,179,0,196,
12015133,0,185,80,32,28,78,99,193,18,80,36,4,19,159,141,172,0,178,90,4,74,73,0,
1201622,209,68,201,187,129,4,2,8,3,132,64,60,36,6,149,113,72,176,171,240,84,0,
12017157,91,116,116,32,11,42,218,221,216,181,129,32,3,234,219,165,3,188,231,235,
12018249,8,187,152,252,47,86,227,105,18,7,244,17,91,42,56,175,185,248,110,173,
12019198,209,208,36,0,238,82,97,87,188,189,179,240,93,122,32,12,22,162,42,125,
12020144,132,160,7,236,161,25,232,237,105,64,205,59,127,102,158,160,230,63,11,
12021217,66,51,210,129,154,118,254,205,61,65,236,127,171,197,34,168,48,6,90,194,
120221,0,39,75,88,72,8,9,33,186,194,80,64,76,13,214,19,2,130,96,110,150,189,0,
1202365,6,51,214,20,128,65,17,11,214,19,130,137,121,211,210,211,144,6,39,75,88,
1202480,0,201,119,235,10,8,41,86,231,71,88,80,129,79,135,186,122,133,224,34,25,
1202569,234,80,3,91,141,172,40,96,139,113,180,181,133,36,21,110,54,142,134,176,
12026165,1,176,23,213,47,0,216,134,234,215,128,111,117,181,232,128,209,3,70,230,
12027107,64,5,139,168,209,235,10,32,36,144,102,235,136,3,146,27,172,40,160,146,
12028132,103,172,40,192,115,3,117,133,28,22,113,163,69,172,41,103,1,66,188,17,
12029145,52,168,4,202,113,67,76,130,227,76,194,13,240,108,0,0,83,224,0,2,193,0,
12030104,146,84,97,48,0,1,94,192,56,169,24,145,179,192,0,5,112,8,56,16,32,128,
1203156,18,52,125,230,86,147,190,140,28,50,21,13,39,31,23,60,145,158,57,12,141,
1203247,129,6,155,194,188,24,49,39,199,89,188,124,92,242,70,120,224,201,33,69,
1203315,155,163,201,68,14,49,39,199,197,211,116,240,242,113,197,232,18,180,254,
1203436,3,17,46,18,243,35,100,128,172,156,178,70,163,154,76,34,248,146,164,108,
12035248,75,204,141,146,28,217,115,137,27,95,27,241,173,236,162,160,224,200,2,
12036206,9,113,13,148,192,209,18,22,164,146,37,193,57,162,4,249,39,196,128,24,2,
12037178,66,213,136,68,201,16,77,209,131,31,192,242,88,96,92,191,151,34,100,136,
1203838,232,255,252,92,221,199,197,12,68,209,82,66,212,11,155,185,41,197,13,55,
1203938,3,66,213,47,135,254,72,12,162,99,133,116,112,0,1,72,66,14,16,16,50,37,
12040202,160,150,154,66,14,20,8,57,192,28,24,80,113,50,113,100,105,166,120,248,
120410,0,179,1,65,196,201,199,20,178,36,227,224,0,2,208,54,113,240,0,1,100,11,
12042181,192,0,5,178,1,18,160,65,24,131,20,145,25,188,48,132,122,28,76,146,218,
12043121,35,180,69,145,132,108,224,0,0,0,0,0,0,120,31,153,188,56,132,122,28,76,
12044146,218,121,35,180,69,145,132,108,224,0,0,0,0,0,0,120,31,168,160,45,110,23,
1204530,176,33,184,0,0,183,32,29,235,2,27,199,23,0,0,23,4,51,120,129,8,244,56,
12046153,37,180,242,71,104,139,35,8,217,192,0,0,0,0,0,0,240,63,51,120,145,8,244,
1204756,153,37,180,242,71,104,139,35,8,217,192,0,0,0,0,0,0,0,64,51,120,161,8,
12048244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,0,0,0,0,0,64,51,120,177,
120498,244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,0,0,0,0,16,64,51,120,
12050193,8,244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,0,0,0,0,16,64,51,
12051120,209,8,244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,0,0,0,0,16,64,
1205251,120,225,8,244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,0,0,0,0,32,
1205364,32,227,194,0,97,57,162,4,246,104,5,34,92,35,68,225,161,166,220,16,16,
12054137,112,52,41,73,29,185,1,65,196,201,197,145,166,153,246,72,3,137,204,120,
1205534,74,8,199,1,67,17,162,112,201,84,128,97,144,78,25,42,16,131,169,1,205,66,
120568,35,68,225,161,166,239,128,0,10,192,64,196,104,156,50,96,0,2,172,73,240,
12057117,96,57,170,97,4,104,156,52,52,221,240,0,1,82,1,74,9,129,125,240,0,1,82,
1205832,148,25,174,137,58,23,51,190,0,0,42,69,64,195,32,156,50,96,0,2,160,81,
12059238,2,3,107,173,218,3,192,
12061#elif defined(DUK_USE_DOUBLE_BE)
12062DUK_INTERNAL const duk_uint8_t duk_builtins_data[4281] = {
12063144,148,105,226,32,68,52,228,254,12,104,202,37,132,52,167,194,138,105,245,
12064124,57,28,211,57,18,64,52,239,126,44,138,111,175,241,164,19,87,145,30,33,
12065167,22,145,159,8,211,139,9,225,42,5,240,145,139,163,163,8,211,139,10,228,
1206664,211,19,132,140,93,29,56,70,156,88,119,34,66,146,36,104,137,194,70,46,
12067142,172,35,78,44,47,146,195,102,11,240,145,139,163,175,8,211,139,9,228,240,
12068242,112,145,139,163,179,8,211,139,8,237,34,130,118,49,116,118,225,26,48,0,
120691,98,29,201,158,46,183,39,135,147,132,140,93,16,132,76,66,33,8,66,16,132,
1207033,8,66,26,180,105,97,167,68,150,34,33,154,112,0,1,91,247,35,79,111,237,
12071198,174,232,47,31,23,95,17,13,31,249,96,211,49,50,53,214,77,141,24,0,0,181,
1207210,228,240,242,15,128,140,65,128,134,188,0,0,90,167,97,181,224,0,2,213,62,
1207353,224,0,2,213,66,237,120,0,0,181,81,204,107,192,0,5,170,150,67,94,0,0,45,
1207484,245,90,240,0,1,106,169,162,215,128,0,11,85,93,150,188,0,0,90,171,111,53,
12075109,22,162,26,48,0,1,84,23,201,146,243,225,26,39,12,145,136,104,192,0,5,61,
1207611,228,201,121,240,100,19,134,72,196,33,195,14,40,203,112,64,190,76,232,
12077145,153,136,15,255,0,0,0,0,0,0,25,152,15,254,0,0,0,0,0,0,25,120,144,13,96,
12078155,194,56,80,206,36,67,141,20,228,70,57,81,206,100,131,156,39,132,168,23,
12079194,70,46,137,208,21,200,129,166,39,9,24,186,39,72,119,34,66,146,36,104,
12080137,194,70,46,137,212,23,201,97,179,5,248,72,197,209,58,194,121,60,60,156,
1208136,98,232,157,129,29,164,80,78,198,46,137,218,146,121,25,71,146,9,209,5,
12082209,61,48,126,14,138,152,30,67,186,23,143,139,175,131,202,135,228,72,85,
12083144,83,60,179,30,94,209,233,102,30,98,105,230,103,30,114,121,231,104,30,
12084122,137,231,233,30,130,153,232,106,30,138,169,232,235,30,144,67,193,25,19,
12085136,108,207,30,41,224,140,137,194,173,192,153,228,5,242,100,188,248,70,137,
12086195,36,79,78,47,147,37,231,193,144,78,25,34,122,145,111,36,74,232,176,13,
1208717,61,234,226,93,207,148,160,84,75,141,7,27,161,32,33,18,225,80,212,76,154,
120882,2,70,65,56,100,237,34,140,209,2,67,32,156,50,118,145,64,186,230,61,205,
1208935,103,155,32,36,141,19,134,78,210,40,206,16,36,70,137,195,39,105,20,11,
12090174,99,220,210,54,121,210,1,137,33,1,228,207,16,17,70,146,66,3,201,164,32,
120910,65,112,152,56,196,159,31,23,77,211,195,201,199,23,160,72,214,246,81,6,12,
1209273,241,214,111,31,23,60,145,158,56,50,72,81,67,230,232,242,80,19,49,39,199,
1209389,188,124,92,242,70,120,227,64,194,75,154,72,12,9,73,6,111,21,120,12,40,
12094144,19,39,25,0,225,144,168,105,56,248,185,228,140,241,200,96,64,100,42,26,
1209578,62,46,121,35,52,18,92,116,1,36,64,47,158,64,49,98,66,100,156,242,65,23,
12096196,149,35,103,194,94,100,108,144,230,203,156,64,66,37,201,16,11,32,249,
12097132,4,34,92,44,93,146,55,152,72,24,137,112,151,153,27,36,5,100,229,144,8,
12098162,98,92,210,5,76,73,241,214,111,31,23,60,145,158,57,44,48,46,92,185,164,
12099160,72,151,41,0,50,107,179,244,59,36,93,127,92,6,19,172,3,11,216,0,56,224,
12100151,29,102,241,241,115,201,25,227,164,64,106,37,199,197,211,116,240,242,
12101113,197,233,144,40,248,185,228,140,241,196,75,132,109,24,72,128,43,39,84,
12102129,13,173,161,144,168,105,56,98,78,100,142,214,215,69,1,13,173,161,144,
12103168,105,57,34,78,100,142,214,215,69,16,67,107,105,110,114,168,254,24,147,
12104153,35,181,181,212,32,67,107,105,110,114,168,254,72,147,153,35,181,181,212,
1210536,65,130,3,144,8,26,252,200,13,30,85,16,16,64,90,242,231,192,64,161,163,
12106203,31,26,172,193,17,4,23,105,159,96,27,172,251,16,32,196,4,14,137,112,17,
12107136,48,164,28,134,80,215,202,1,132,130,8,12,39,52,64,155,31,24,56,36,1,189,
12108207,132,0,35,233,35,195,62,3,196,149,36,100,72,160,2,200,232,44,227,0,11,
1210937,160,68,142,128,36,157,25,200,32,26,79,90,4,73,43,192,122,54,71,65,103,
1211044,248,14,134,140,151,227,138,231,208,45,96,148,248,134,140,151,227,138,
12111231,240,1,255,254,10,74,146,56,128,104,4,147,152,72,6,144,28,174,143,8,1,
1211230,1,165,3,96,31,0,211,3,21,11,153,35,0,211,131,68,131,160,137,16,250,5,
12113196,131,160,137,200,160,199,156,67,248,0,255,255,65,140,10,48,177,115,56,
1211435,130,60,19,134,79,89,240,52,177,115,56,39,12,156,123,144,217,251,15,135,
1211534,167,30,20,170,154,255,232,12,47,244,0,97,28,17,224,39,238,32,40,71,4,
12116120,39,12,156,4,253,228,5,137,195,39,30,228,54,124,4,253,228,128,194,115,
1211768,9,252,15,128,232,104,201,126,56,191,35,64,90,193,41,241,13,25,47,199,23,
12118228,105,3,86,225,1,100,224,156,199,130,36,249,144,10,192,76,71,250,16,15,
1211918,61,96,17,62,200,3,72,128,136,143,247,32,22,75,64,137,248,64,22,79,90,39,
12120249,64,38,84,12,167,20,52,223,196,2,230,238,45,214,36,120,32,72,158,208,4,
12121102,238,45,194,2,201,197,186,196,143,4,9,19,218,0,92,221,202,61,228,143,4,
121229,19,218,8,35,55,113,110,16,22,78,81,239,36,120,32,72,158,208,64,73,197,12,
12123255,0,13,18,60,128,159,212,128,169,76,17,156,185,100,76,255,163,64,65,26,
1212457,114,200,153,255,70,144,33,13,18,232,50,75,226,104,6,149,3,41,199,246,
12125130,12,128,28,142,156,120,203,175,158,8,194,207,1,6,81,20,79,88,11,237,84,
1212611,161,32,63,247,255,255,255,255,255,255,137,235,16,221,170,129,116,36,0,0,
121270,0,0,0,0,0,28,196,7,255,128,0,0,0,0,0,2,61,123,164,137,162,164,218,67,74,
12128134,162,120,128,255,224,0,0,0,0,0,0,71,173,33,129,52,84,155,72,105,80,212,
1212979,16,63,252,0,0,0,0,0,0,3,244,143,146,22,230,192,60,176,0,0,0,0,0,0,33,
12130214,2,251,82,1,73,180,134,204,134,36,96,33,159,255,255,255,255,255,255,144,
12131235,16,221,169,0,164,218,67,102,67,18,48,48,207,255,255,255,255,255,255,
12132196,60,17,145,56,134,204,241,226,158,8,200,156,42,220,9,158,65,196,34,92,
1213342,26,137,147,120,64,74,37,196,54,100,49,35,188,36,5,68,184,208,113,187,
12134194,80,212,75,146,1,73,196,54,100,49,35,188,38,57,37,56,240,0,0,0,0,0,0,0,
121350,32,235,248,68,48,156,2,24,94,24,0,243,119,10,139,144,123,242,3,102,238,
1213618,239,115,72,217,160,11,223,16,23,55,113,241,32,145,36,57,188,18,16,102,3,
121375,120,35,34,89,32,15,180,152,173,127,0,218,235,88,0,228,180,227,200,127,
12138248,0,0,0,0,0,0,197,107,240,64,6,77,220,24,38,78,74,113,67,77,130,4,12,155,
12139185,52,48,156,148,226,134,155,4,10,194,96,129,132,166,238,45,194,2,201,193,
12140130,100,228,167,20,52,216,32,113,41,187,139,112,128,178,114,104,97,57,41,
12141197,13,54,8,32,48,216,32,130,195,224,130,19,97,124,134,23,6,0,57,137,62,77,
1214212,38,12,0,179,18,124,45,22,190,96,128,141,176,134,28,98,79,180,152,139,
12143218,45,124,193,1,27,97,16,32,196,159,24,230,204,246,194,40,89,137,62,210,
1214498,103,92,217,158,216,70,7,49,39,193,130,100,182,17,194,140,73,246,147,16,
12145250,9,146,216,72,6,49,39,193,131,22,194,72,73,137,62,210,98,31,65,139,97,
1214640,32,196,159,14,234,70,86,194,88,89,137,62,210,98,63,93,72,202,216,76,10,
1214749,39,198,33,180,153,37,108,38,134,152,147,237,38,38,117,13,164,201,43,97,
1214856,40,196,159,36,65,57,163,149,176,158,26,98,79,180,152,165,210,9,205,28,
12149173,133,0,243,18,124,98,22,180,72,130,115,71,43,97,68,72,196,159,105,49,51,
12150168,90,209,34,9,205,28,173,133,33,19,18,124,154,24,76,185,164,227,138,89,
1215118,119,0,7,145,39,201,161,132,188,64,124,137,62,49,11,90,36,65,57,163,149,
12152210,166,37,34,79,180,152,153,212,45,104,145,4,230,142,87,74,160,84,137,62,
1215372,130,115,71,43,171,234,134,200,147,237,38,41,116,130,115,71,43,171,235,5,
1215472,147,227,16,218,76,146,186,254,184,108,137,62,210,98,103,80,218,76,146,
12155186,254,192,68,137,62,29,212,140,174,207,178,23,34,79,180,152,143,215,82,
1215650,187,62,208,60,137,62,12,19,37,210,182,21,34,79,180,152,135,208,76,151,
1215774,224,68,137,62,49,205,153,238,175,186,23,34,79,180,152,153,215,54,103,
12158186,190,240,92,137,62,22,139,95,48,64,70,235,251,225,210,36,251,73,136,189,
12159162,215,204,16,17,186,255,2,14,98,79,152,32,35,108,48,64,242,36,249,130,2,
1216055,75,6,212,224,72,200,51,128,114,108,28,100,128,0,0,0,0,0,0,0,12,110,127,
1216148,98,115,249,201,117,243,249,195,21,159,206,38,47,63,156,86,8,75,144,94,
1216282,1,38,73,79,208,67,95,233,1,6,128,14,79,129,186,40,249,18,149,182,207,
12163144,200,155,188,248,204,105,184,207,142,199,137,175,201,0,159,72,10,5,21,
12164221,10,120,74,129,124,36,98,232,228,74,81,62,160,20,10,107,186,21,114,32,
12165105,137,194,70,46,142,68,165,19,235,1,64,170,187,161,119,34,66,146,36,104,
12166137,194,70,46,142,68,165,19,236,1,64,174,187,161,95,37,134,204,23,225,35,
1216723,71,34,82,137,246,128,160,89,93,208,167,147,195,201,194,70,46,142,68,165,
1216819,238,1,64,182,187,161,71,105,20,19,177,139,163,145,41,68,16,7,6,15,82,70,
1216972,115,96,32,106,27,128,0,0,0,0,91,60,165,195,201,194,8,134,149,216,162,0,
12170192,41,225,8,2,48,177,36,1,149,13,196,15,0,200,209,97,199,128,99,32,176,
12171195,192,113,57,143,0,167,133,32,230,80,28,202,139,175,238,2,48,189,192,20,
121721,119,80,87,193,186,129,89,56,72,197,209,200,193,185,35,23,71,109,13,219,
1217336,98,232,237,156,13,26,208,211,14,102,19,87,137,91,95,128,0,10,96,24,92,0,
121740,83,2,53,56,0,0,165,3,28,204,160,160,226,100,226,200,211,76,241,240,0,1,
12175102,8,22,75,64,137,73,20,230,105,133,7,19,39,22,70,154,103,143,128,0,11,48,
1217620,28,76,156,113,75,34,78,62,0,0,45,3,103,31,0,0,22,65,44,57,137,62,33,179,
12177216,162,152,192,131,18,124,162,27,61,138,41,108,32,196,159,16,217,232,235,
1217881,76,104,73,137,62,81,13,158,142,181,20,184,16,98,79,136,108,244,244,168,
12179166,56,36,196,159,40,134,207,79,74,138,93,10,49,39,194,173,192,158,158,149,
1218020,188,20,98,79,133,91,129,61,109,74,41,124,30,68,159,16,217,236,83,108,96,
1218168,137,62,81,13,158,197,54,182,17,34,79,136,108,244,117,169,182,52,38,68,
12182159,40,134,207,71,90,155,92,8,145,39,196,54,122,122,84,219,28,19,34,79,148,
1218367,103,167,165,77,174,133,72,147,225,86,224,79,79,74,155,94,10,145,39,194,
12184173,192,158,182,165,54,190,206,25,212,35,208,226,100,150,211,201,29,162,44,
12185140,35,103,0,255,192,0,0,0,0,0,0,206,25,228,35,208,226,100,150,211,201,29,
12186162,44,140,35,103,0,255,192,0,0,0,0,0,0,206,25,244,35,208,226,100,150,211,
12187201,29,162,44,140,35,103,0,255,192,0,0,0,0,0,0,206,26,4,35,208,226,100,150,
12188211,201,29,162,44,140,35,103,1,0,0,0,0,0,0,0,0,206,26,20,35,208,226,100,
12189150,211,201,29,162,44,140,35,103,1,0,0,0,0,0,0,0,0,206,26,36,35,208,226,
12190100,150,211,201,29,162,44,140,35,103,1,0,64,0,0,0,0,0,0,206,26,52,35,208,
12191226,100,150,211,201,29,162,44,140,35,103,1,0,64,0,0,0,0,0,0,206,26,68,35,
12192208,226,100,150,211,201,29,162,44,140,35,103,1,0,64,0,0,0,0,0,0,206,26,84,
1219335,208,226,100,150,211,201,29,162,44,140,35,103,1,0,128,0,0,0,0,0,0,195,
12194154,99,16,38,36,0,251,68,117,179,216,162,128,68,72,1,241,13,158,197,20,150,
1219525,18,0,125,162,58,217,232,235,117,100,162,136,25,18,0,125,162,58,217,232,
12196235,116,36,162,145,2,226,64,15,136,108,244,117,186,178,81,73,129,113,32,7,
12197196,54,122,58,221,9,40,165,64,200,144,3,237,17,214,207,79,75,171,37,20,80,
12198200,144,3,237,17,214,207,79,75,161,37,20,138,23,18,0,124,67,103,167,165,
12199213,146,138,77,11,137,0,62,33,179,211,210,232,73,69,42,133,196,128,31,10,
12200183,2,125,89,40,163,5,196,128,31,10,183,2,125,9,40,164,96,200,144,3,224,
12201221,64,172,157,89,40,163,134,68,128,31,6,234,5,100,232,73,69,35,133,68,128,
1220231,104,142,182,125,89,40,180,0,168,144,3,237,17,214,207,161,37,22,144,19,
1220318,0,124,67,103,213,146,139,80,9,137,0,62,33,179,232,73,69,172,5,90,40,153,
1220459,68,117,179,216,166,192,77,162,137,147,136,108,246,41,180,176,219,69,19,
1220539,104,142,182,122,58,221,89,41,178,6,218,40,153,59,68,117,179,209,214,232,
1220673,77,162,6,90,40,153,56,134,207,71,91,171,37,54,152,25,104,162,100,226,27,
1220761,29,110,132,148,218,160,109,162,137,147,180,71,91,61,61,46,172,148,217,
1220867,109,20,76,157,162,58,217,233,233,116,36,166,209,67,45,20,76,156,67,103,
12209167,165,213,146,155,77,12,180,81,50,113,13,158,158,151,66,74,109,84,50,209,
1221068,201,194,173,192,159,86,74,108,193,150,138,38,78,21,110,4,250,18,83,104,
12211193,182,138,38,78,13,212,10,201,213,146,155,56,109,162,137,147,131,117,2,
12212178,116,36,166,209,194,237,20,76,157,162,58,217,245,100,167,16,2,237,20,76,
12213157,162,58,217,244,36,167,18,2,173,20,76,156,67,103,213,146,156,80,10,180,
1221481,50,113,13,159,66,74,113,97,175,221,48,216,110,64,4,42,22,189,179,0,196,
12215133,0,185,80,32,28,78,99,193,18,80,36,4,19,159,141,172,0,178,90,4,74,73,0,
1221622,209,68,201,187,129,4,2,8,3,132,64,60,36,4,0,91,240,168,177,69,118,144,
12217157,91,116,116,32,32,1,53,216,221,218,170,139,3,234,219,165,0,255,152,185,
1221811,251,232,231,188,47,86,227,105,18,1,255,184,170,59,41,92,23,240,110,173,
12219198,209,208,36,3,253,188,183,177,82,110,80,224,93,122,32,32,4,144,253,170,
1222034,22,140,7,236,161,25,232,237,105,64,63,230,160,158,102,127,59,205,11,217,
1222166,51,210,128,127,237,65,60,204,254,119,155,171,197,34,168,48,6,90,194,1,0,
1222239,75,88,72,8,9,33,186,194,80,64,76,13,214,19,2,130,96,110,150,189,0,65,6,
1222351,214,20,128,65,17,11,214,19,130,137,121,211,210,211,144,6,39,75,88,80,0,
12224201,119,235,10,8,41,86,231,71,88,80,129,79,135,186,122,133,224,34,25,69,
12225234,80,3,91,141,172,40,96,139,113,180,181,133,36,21,110,54,142,134,176,165,
122261,176,23,213,47,0,216,134,234,215,128,111,117,181,232,128,209,3,70,230,107,
1222764,5,139,168,209,235,10,32,36,144,102,235,136,3,146,27,172,40,160,146,132,
12228103,172,40,192,115,3,117,133,28,22,113,163,69,172,41,103,1,66,188,17,145,
1222952,168,4,202,113,67,76,130,227,76,194,13,240,108,0,0,83,224,0,2,193,0,104,
12230146,84,97,48,0,1,94,192,56,169,24,145,179,192,0,5,112,8,56,16,32,128,56,18,
1223152,125,230,86,147,190,140,28,50,21,13,39,31,23,60,145,158,57,12,141,47,129,
122326,155,194,188,24,49,39,199,89,188,124,92,242,70,120,224,201,33,69,15,155,
12233163,201,68,14,49,39,199,197,211,116,240,242,113,197,232,18,180,254,36,3,17,
1223446,18,243,35,100,128,172,156,178,70,163,154,76,34,248,146,164,108,248,75,
12235204,141,146,28,217,115,137,27,95,27,241,173,236,162,160,224,200,2,206,9,
12236113,13,148,192,209,18,22,164,146,37,193,57,162,4,249,39,196,128,24,2,178,
1223766,213,136,68,201,16,77,209,131,31,192,242,88,96,92,191,151,34,100,136,38,
12238232,255,252,92,221,199,197,12,68,209,82,66,212,11,155,185,41,197,13,55,38,
122393,66,213,47,135,254,72,12,162,99,133,116,112,0,1,72,66,14,16,16,50,37,202,
12240160,150,154,66,14,20,8,57,192,28,24,80,113,50,113,100,105,166,120,248,0,0,
12241179,1,65,196,201,199,20,178,36,227,224,0,2,208,54,113,240,0,1,100,11,181,
12242192,0,5,178,1,18,160,65,24,131,20,145,25,188,48,132,122,28,76,146,218,121,
1224335,180,69,145,132,108,224,31,248,0,0,0,0,0,0,25,188,56,132,122,28,76,146,
12244218,121,35,180,69,145,132,108,224,31,248,0,0,0,0,0,0,40,160,45,110,23,30,
12245176,33,184,0,0,183,32,29,235,2,27,199,23,0,0,23,4,51,120,129,8,244,56,153,
1224637,180,242,71,104,139,35,8,217,192,63,240,0,0,0,0,0,0,51,120,145,8,244,56,
12247153,37,180,242,71,104,139,35,8,217,192,64,0,0,0,0,0,0,0,51,120,161,8,244,
1224856,153,37,180,242,71,104,139,35,8,217,192,64,0,0,0,0,0,0,0,51,120,177,8,
12249244,56,153,37,180,242,71,104,139,35,8,217,192,64,16,0,0,0,0,0,0,51,120,193,
122508,244,56,153,37,180,242,71,104,139,35,8,217,192,64,16,0,0,0,0,0,0,51,120,
12251209,8,244,56,153,37,180,242,71,104,139,35,8,217,192,64,16,0,0,0,0,0,0,51,
12252120,225,8,244,56,153,37,180,242,71,104,139,35,8,217,192,64,32,0,0,0,0,0,0,
1225332,227,194,0,97,57,162,4,246,104,5,34,92,35,68,225,161,166,220,16,16,137,
12254112,52,41,73,29,185,1,65,196,201,197,145,166,153,246,72,3,137,204,120,34,
1225574,8,199,1,67,17,162,112,201,84,128,97,144,78,25,42,16,131,169,1,205,66,8,
1225635,68,225,161,166,239,128,0,10,192,64,196,104,156,50,96,0,2,172,73,240,117,
1225796,57,170,97,4,104,156,52,52,221,240,0,1,82,1,74,9,129,125,240,0,1,82,32,
12258148,25,174,137,58,23,51,190,0,0,42,69,64,195,32,156,50,96,0,2,160,81,238,2,
122593,107,173,218,3,192,
12261#elif defined(DUK_USE_DOUBLE_ME)
12262DUK_INTERNAL const duk_uint8_t duk_builtins_data[4281] = {
12263144,148,105,226,32,68,52,228,254,12,104,202,37,132,52,167,194,138,105,245,
12264124,57,28,211,57,18,64,52,239,126,44,138,111,175,241,164,19,87,145,30,33,
12265167,22,145,159,8,211,139,9,225,42,5,240,145,139,163,163,8,211,139,10,228,
1226664,211,19,132,140,93,29,56,70,156,88,119,34,66,146,36,104,137,194,70,46,
12267142,172,35,78,44,47,146,195,102,11,240,145,139,163,175,8,211,139,9,228,240,
12268242,112,145,139,163,179,8,211,139,8,237,34,130,118,49,116,118,225,26,48,0,
122691,98,29,201,158,46,183,39,135,147,132,140,93,16,132,76,66,33,8,66,16,132,
1227033,8,66,26,180,105,97,167,68,150,34,33,154,112,0,1,91,247,35,79,111,237,
12271198,174,232,47,31,23,95,17,13,31,249,96,211,49,50,53,214,77,141,24,0,0,181,
1227210,228,240,242,15,128,140,65,128,134,188,0,0,90,167,97,181,224,0,2,213,62,
1227353,224,0,2,213,66,237,120,0,0,181,81,204,107,192,0,5,170,150,67,94,0,0,45,
1227484,245,90,240,0,1,106,169,162,215,128,0,11,85,93,150,188,0,0,90,171,111,53,
12275109,22,162,26,48,0,1,84,23,201,146,243,225,26,39,12,145,136,104,192,0,5,61,
1227611,228,201,121,240,100,19,134,72,196,33,195,14,40,203,112,64,190,76,232,
12277145,153,136,0,0,31,15,224,0,0,0,25,152,0,0,30,15,224,0,0,0,25,120,144,13,
1227896,155,194,56,80,206,36,67,141,20,228,70,57,81,206,100,131,156,39,132,168,
1227923,194,70,46,137,208,21,200,129,166,39,9,24,186,39,72,119,34,66,146,36,104,
12280137,194,70,46,137,212,23,201,97,179,5,248,72,197,209,58,194,121,60,60,156,
1228136,98,232,157,129,29,164,80,78,198,46,137,218,146,121,25,71,146,9,209,5,
12282209,61,48,126,14,138,152,30,67,186,23,143,139,175,131,202,135,228,72,85,
12283144,83,60,179,30,94,209,233,102,30,98,105,230,103,30,114,121,231,104,30,
12284122,137,231,233,30,130,153,232,106,30,138,169,232,235,30,144,67,193,25,19,
12285136,108,207,30,41,224,140,137,194,173,192,153,228,5,242,100,188,248,70,137,
12286195,36,79,78,47,147,37,231,193,144,78,25,34,122,145,111,36,74,232,176,13,
1228717,61,234,226,93,207,148,160,84,75,141,7,27,161,32,33,18,225,80,212,76,154,
122882,2,70,65,56,100,237,34,140,209,2,67,32,156,50,118,145,64,186,230,61,205,
1228935,103,155,32,36,141,19,134,78,210,40,206,16,36,70,137,195,39,105,20,11,
12290174,99,220,210,54,121,210,1,137,33,1,228,207,16,17,70,146,66,3,201,164,32,
122910,65,112,152,56,196,159,31,23,77,211,195,201,199,23,160,72,214,246,81,6,12,
1229273,241,214,111,31,23,60,145,158,56,50,72,81,67,230,232,242,80,19,49,39,199,
1229389,188,124,92,242,70,120,227,64,194,75,154,72,12,9,73,6,111,21,120,12,40,
12294144,19,39,25,0,225,144,168,105,56,248,185,228,140,241,200,96,64,100,42,26,
1229578,62,46,121,35,52,18,92,116,1,36,64,47,158,64,49,98,66,100,156,242,65,23,
12296196,149,35,103,194,94,100,108,144,230,203,156,64,66,37,201,16,11,32,249,
12297132,4,34,92,44,93,146,55,152,72,24,137,112,151,153,27,36,5,100,229,144,8,
12298162,98,92,210,5,76,73,241,214,111,31,23,60,145,158,57,44,48,46,92,185,164,
12299160,72,151,41,0,50,107,179,244,59,36,93,127,92,6,19,172,3,11,216,0,56,224,
12300151,29,102,241,241,115,201,25,227,164,64,106,37,199,197,211,116,240,242,
12301113,197,233,144,40,248,185,228,140,241,196,75,132,109,24,72,128,43,39,84,
12302129,13,173,161,144,168,105,56,98,78,100,142,214,215,69,1,13,173,161,144,
12303168,105,57,34,78,100,142,214,215,69,16,67,107,105,110,114,168,254,24,147,
12304153,35,181,181,212,32,67,107,105,110,114,168,254,72,147,153,35,181,181,212,
1230536,65,130,3,144,8,26,252,200,13,30,85,16,16,64,90,242,231,192,64,161,163,
12306203,31,26,172,193,17,4,23,105,159,96,27,172,251,16,32,196,4,14,137,112,17,
12307136,48,164,28,134,80,215,202,1,132,130,8,12,39,52,64,155,31,24,56,36,1,189,
12308207,132,0,35,233,35,195,62,3,196,149,36,100,72,160,2,200,232,44,227,0,11,
1230937,160,68,142,128,36,157,25,200,32,26,79,90,4,73,43,192,122,54,71,65,103,
1231044,248,14,134,140,151,227,138,231,208,45,96,148,248,134,140,151,227,138,
12311231,240,1,255,254,10,74,146,56,128,104,4,147,152,72,6,144,28,174,143,8,1,
1231230,1,165,3,96,31,0,211,3,21,11,153,35,0,211,131,68,131,160,137,16,250,5,
12313196,131,160,137,200,160,199,156,67,248,0,255,255,65,140,10,48,177,115,56,
1231435,130,60,19,134,79,89,240,52,177,115,56,39,12,156,123,144,217,251,15,135,
1231534,167,30,20,170,154,255,232,12,47,244,0,97,28,17,224,39,238,32,40,71,4,
12316120,39,12,156,4,253,228,5,137,195,39,30,228,54,124,4,253,228,128,194,115,
1231768,9,252,15,128,232,104,201,126,56,191,35,64,90,193,41,241,13,25,47,199,23,
12318228,105,3,86,225,1,100,224,156,199,130,36,249,144,10,192,76,71,250,16,15,
1231918,61,96,17,62,200,3,72,128,136,143,247,32,22,75,64,137,248,64,22,79,90,39,
12320249,64,38,84,12,167,20,52,223,196,2,230,238,45,214,36,120,32,72,158,208,4,
12321102,238,45,194,2,201,197,186,196,143,4,9,19,218,0,92,221,202,61,228,143,4,
123229,19,218,8,35,55,113,110,16,22,78,81,239,36,120,32,72,158,208,64,73,197,12,
12323255,0,13,18,60,128,159,212,128,169,76,17,156,185,100,76,255,163,64,65,26,
1232457,114,200,153,255,70,144,33,13,18,232,50,75,226,104,6,149,3,41,199,246,
12325130,12,128,28,142,156,120,203,175,158,8,194,207,1,6,81,20,79,88,11,237,84,
1232611,161,32,127,255,247,191,255,255,255,255,137,235,16,221,170,129,116,36,0,
123270,0,0,0,16,0,0,12,196,0,0,15,135,240,0,0,0,2,61,123,164,137,162,164,218,67,
1232874,134,162,120,128,0,1,224,254,0,0,0,0,71,173,33,129,52,84,155,72,105,80,
12329212,79,16,0,0,60,63,192,0,0,0,3,244,143,146,22,230,192,0,0,176,60,0,0,0,0,
1233033,214,2,251,82,1,73,180,134,204,134,36,96,127,255,159,161,255,255,255,255,
12331144,235,16,221,169,0,164,218,67,102,67,18,48,63,255,207,240,255,255,255,
12332255,196,60,17,145,56,134,204,241,226,158,8,200,156,42,220,9,158,65,196,34,
1233392,42,26,137,147,120,64,74,37,196,54,100,49,35,188,36,5,68,184,208,113,187,
12334194,80,212,75,146,1,73,196,54,100,49,35,188,38,57,37,56,240,0,0,0,0,0,0,0,
123350,32,235,248,68,48,156,2,24,94,24,0,243,119,10,139,144,123,242,3,102,238,
1233618,239,115,72,217,160,11,223,16,23,55,113,241,32,145,36,57,188,18,16,102,3,
123375,120,35,34,89,32,15,180,152,173,127,0,218,235,88,0,228,180,227,200,0,0,
12338248,127,0,0,0,0,197,107,240,64,6,77,220,24,38,78,74,113,67,77,130,4,12,155,
12339185,52,48,156,148,226,134,155,4,10,194,96,129,132,166,238,45,194,2,201,193,
12340130,100,228,167,20,52,216,32,113,41,187,139,112,128,178,114,104,97,57,41,
12341197,13,54,8,32,48,216,32,130,195,224,130,19,97,124,134,23,6,0,57,137,62,77,
1234212,38,12,0,179,18,124,45,22,190,96,128,141,176,134,28,98,79,180,152,139,
12343218,45,124,193,1,27,97,16,32,196,159,24,230,204,246,194,40,89,137,62,210,
1234498,103,92,217,158,216,70,7,49,39,193,130,100,182,17,194,140,73,246,147,16,
12345250,9,146,216,72,6,49,39,193,131,22,194,72,73,137,62,210,98,31,65,139,97,
1234640,32,196,159,14,234,70,86,194,88,89,137,62,210,98,63,93,72,202,216,76,10,
1234749,39,198,33,180,153,37,108,38,134,152,147,237,38,38,117,13,164,201,43,97,
1234856,40,196,159,36,65,57,163,149,176,158,26,98,79,180,152,165,210,9,205,28,
12349173,133,0,243,18,124,98,22,180,72,130,115,71,43,97,68,72,196,159,105,49,51,
12350168,90,209,34,9,205,28,173,133,33,19,18,124,154,24,76,185,164,227,138,89,
1235118,119,0,7,145,39,201,161,132,188,64,124,137,62,49,11,90,36,65,57,163,149,
12352210,166,37,34,79,180,152,153,212,45,104,145,4,230,142,87,74,160,84,137,62,
1235372,130,115,71,43,171,234,134,200,147,237,38,41,116,130,115,71,43,171,235,5,
1235472,147,227,16,218,76,146,186,254,184,108,137,62,210,98,103,80,218,76,146,
12355186,254,192,68,137,62,29,212,140,174,207,178,23,34,79,180,152,143,215,82,
1235650,187,62,208,60,137,62,12,19,37,210,182,21,34,79,180,152,135,208,76,151,
1235774,224,68,137,62,49,205,153,238,175,186,23,34,79,180,152,153,215,54,103,
12358186,190,240,92,137,62,22,139,95,48,64,70,235,251,225,210,36,251,73,136,189,
12359162,215,204,16,17,186,255,2,14,98,79,152,32,35,108,48,64,242,36,249,130,2,
1236055,75,6,212,224,72,200,51,128,114,108,28,100,128,0,0,0,0,0,0,0,12,110,127,
1236148,98,115,249,201,117,243,249,195,21,159,206,38,47,63,156,86,8,75,144,94,
1236282,1,38,73,79,208,67,95,233,1,6,128,14,79,129,186,40,249,18,149,182,207,
12363144,200,155,188,248,204,105,184,207,142,199,137,175,201,0,159,72,10,5,21,
12364221,10,120,74,129,124,36,98,232,228,74,81,62,160,20,10,107,186,21,114,32,
12365105,137,194,70,46,142,68,165,19,235,1,64,170,187,161,119,34,66,146,36,104,
12366137,194,70,46,142,68,165,19,236,1,64,174,187,161,95,37,134,204,23,225,35,
1236723,71,34,82,137,246,128,160,89,93,208,167,147,195,201,194,70,46,142,68,165,
1236819,238,1,64,182,187,161,71,105,20,19,177,139,163,145,41,68,16,7,6,15,82,70,
1236972,115,96,0,27,234,32,0,0,0,0,91,60,165,195,201,194,8,134,149,216,162,0,
12370192,41,225,8,2,48,177,36,1,149,13,196,15,0,200,209,97,199,128,99,32,176,
12371195,192,113,57,143,0,167,133,32,230,80,28,202,139,175,238,2,48,189,192,20,
123721,119,80,87,193,186,129,89,56,72,197,209,200,193,185,35,23,71,109,13,219,
1237336,98,232,237,156,13,26,208,211,14,102,19,87,137,91,95,128,0,10,96,24,92,0,
123740,83,2,53,56,0,0,165,3,28,204,160,160,226,100,226,200,211,76,241,240,0,1,
12375102,8,22,75,64,137,73,20,230,105,133,7,19,39,22,70,154,103,143,128,0,11,48,
1237620,28,76,156,113,75,34,78,62,0,0,45,3,103,31,0,0,22,65,44,57,137,62,33,179,
12377216,162,152,192,131,18,124,162,27,61,138,41,108,32,196,159,16,217,232,235,
1237881,76,104,73,137,62,81,13,158,142,181,20,184,16,98,79,136,108,244,244,168,
12379166,56,36,196,159,40,134,207,79,74,138,93,10,49,39,194,173,192,158,158,149,
1238020,188,20,98,79,133,91,129,61,109,74,41,124,30,68,159,16,217,236,83,108,96,
1238168,137,62,81,13,158,197,54,182,17,34,79,136,108,244,117,169,182,52,38,68,
12382159,40,134,207,71,90,155,92,8,145,39,196,54,122,122,84,219,28,19,34,79,148,
1238367,103,167,165,77,174,133,72,147,225,86,224,79,79,74,155,94,10,145,39,194,
12384173,192,158,182,165,54,190,206,25,212,35,208,226,100,150,211,201,29,162,44,
12385140,35,103,0,0,3,192,252,0,0,0,0,206,25,228,35,208,226,100,150,211,201,29,
12386162,44,140,35,103,0,0,3,192,252,0,0,0,0,206,25,244,35,208,226,100,150,211,
12387201,29,162,44,140,35,103,0,0,3,192,252,0,0,0,0,206,26,4,35,208,226,100,150,
12388211,201,29,162,44,140,35,103,0,0,0,1,0,0,0,0,0,206,26,20,35,208,226,100,
12389150,211,201,29,162,44,140,35,103,0,0,0,1,0,0,0,0,0,206,26,36,35,208,226,
12390100,150,211,201,29,162,44,140,35,103,0,0,0,65,0,0,0,0,0,206,26,52,35,208,
12391226,100,150,211,201,29,162,44,140,35,103,0,0,0,65,0,0,0,0,0,206,26,68,35,
12392208,226,100,150,211,201,29,162,44,140,35,103,0,0,0,65,0,0,0,0,0,206,26,84,
1239335,208,226,100,150,211,201,29,162,44,140,35,103,0,0,0,129,0,0,0,0,0,195,
12394154,99,16,38,36,0,251,68,117,179,216,162,128,68,72,1,241,13,158,197,20,150,
1239525,18,0,125,162,58,217,232,235,117,100,162,136,25,18,0,125,162,58,217,232,
12396235,116,36,162,145,2,226,64,15,136,108,244,117,186,178,81,73,129,113,32,7,
12397196,54,122,58,221,9,40,165,64,200,144,3,237,17,214,207,79,75,171,37,20,80,
12398200,144,3,237,17,214,207,79,75,161,37,20,138,23,18,0,124,67,103,167,165,
12399213,146,138,77,11,137,0,62,33,179,211,210,232,73,69,42,133,196,128,31,10,
12400183,2,125,89,40,163,5,196,128,31,10,183,2,125,9,40,164,96,200,144,3,224,
12401221,64,172,157,89,40,163,134,68,128,31,6,234,5,100,232,73,69,35,133,68,128,
1240231,104,142,182,125,89,40,180,0,168,144,3,237,17,214,207,161,37,22,144,19,
1240318,0,124,67,103,213,146,139,80,9,137,0,62,33,179,232,73,69,172,5,90,40,153,
1240459,68,117,179,216,166,192,77,162,137,147,136,108,246,41,180,176,219,69,19,
1240539,104,142,182,122,58,221,89,41,178,6,218,40,153,59,68,117,179,209,214,232,
1240673,77,162,6,90,40,153,56,134,207,71,91,171,37,54,152,25,104,162,100,226,27,
1240761,29,110,132,148,218,160,109,162,137,147,180,71,91,61,61,46,172,148,217,
1240867,109,20,76,157,162,58,217,233,233,116,36,166,209,67,45,20,76,156,67,103,
12409167,165,213,146,155,77,12,180,81,50,113,13,158,158,151,66,74,109,84,50,209,
1241068,201,194,173,192,159,86,74,108,193,150,138,38,78,21,110,4,250,18,83,104,
12411193,182,138,38,78,13,212,10,201,213,146,155,56,109,162,137,147,131,117,2,
12412178,116,36,166,209,194,237,20,76,157,162,58,217,245,100,167,16,2,237,20,76,
12413157,162,58,217,244,36,167,18,2,173,20,76,156,67,103,213,146,156,80,10,180,
1241481,50,113,13,159,66,74,113,97,175,221,48,216,110,64,4,42,22,189,179,0,196,
12415133,0,185,80,32,28,78,99,193,18,80,36,4,19,159,141,172,0,178,90,4,74,73,0,
1241622,209,68,201,187,129,4,2,8,3,132,64,60,36,0,171,240,84,6,149,113,72,176,
12417157,91,116,116,32,88,181,129,32,11,42,218,221,131,234,219,165,1,8,187,152,
12418255,188,231,235,248,47,86,227,105,18,2,56,175,185,255,244,17,91,40,110,173,
12419198,209,208,36,7,188,189,179,240,238,82,97,80,93,122,32,125,144,132,160,12,
1242022,162,42,7,236,161,25,232,237,105,64,158,160,230,63,205,59,127,102,11,217,
1242166,51,210,129,61,65,236,127,154,118,254,205,171,197,34,168,48,6,90,194,1,0,
1242239,75,88,72,8,9,33,186,194,80,64,76,13,214,19,2,130,96,110,150,189,0,65,6,
1242351,214,20,128,65,17,11,214,19,130,137,121,211,210,211,144,6,39,75,88,80,0,
12424201,119,235,10,8,41,86,231,71,88,80,129,79,135,186,122,133,224,34,25,69,
12425234,80,3,91,141,172,40,96,139,113,180,181,133,36,21,110,54,142,134,176,165,
124261,176,23,213,47,0,216,134,234,215,128,111,117,181,232,128,209,3,70,230,107,
1242764,5,139,168,209,235,10,32,36,144,102,235,136,3,146,27,172,40,160,146,132,
12428103,172,40,192,115,3,117,133,28,22,113,163,69,172,41,103,1,66,188,17,145,
1242952,168,4,202,113,67,76,130,227,76,194,13,240,108,0,0,83,224,0,2,193,0,104,
12430146,84,97,48,0,1,94,192,56,169,24,145,179,192,0,5,112,8,56,16,32,128,56,18,
1243152,125,230,86,147,190,140,28,50,21,13,39,31,23,60,145,158,57,12,141,47,129,
124326,155,194,188,24,49,39,199,89,188,124,92,242,70,120,224,201,33,69,15,155,
12433163,201,68,14,49,39,199,197,211,116,240,242,113,197,232,18,180,254,36,3,17,
1243446,18,243,35,100,128,172,156,178,70,163,154,76,34,248,146,164,108,248,75,
12435204,141,146,28,217,115,137,27,95,27,241,173,236,162,160,224,200,2,206,9,
12436113,13,148,192,209,18,22,164,146,37,193,57,162,4,249,39,196,128,24,2,178,
1243766,213,136,68,201,16,77,209,131,31,192,242,88,96,92,191,151,34,100,136,38,
12438232,255,252,92,221,199,197,12,68,209,82,66,212,11,155,185,41,197,13,55,38,
124393,66,213,47,135,254,72,12,162,99,133,116,112,0,1,72,66,14,16,16,50,37,202,
12440160,150,154,66,14,20,8,57,192,28,24,80,113,50,113,100,105,166,120,248,0,0,
12441179,1,65,196,201,199,20,178,36,227,224,0,2,208,54,113,240,0,1,100,11,181,
12442192,0,5,178,1,18,160,65,24,131,20,145,25,188,48,132,122,28,76,146,218,121,
1244335,180,69,145,132,108,224,0,0,120,31,128,0,0,0,25,188,56,132,122,28,76,146,
12444218,121,35,180,69,145,132,108,224,0,0,120,31,128,0,0,0,40,160,45,110,23,30,
12445176,33,184,0,0,183,32,29,235,2,27,199,23,0,0,23,4,51,120,129,8,244,56,153,
1244637,180,242,71,104,139,35,8,217,192,0,0,240,63,0,0,0,0,51,120,145,8,244,56,
12447153,37,180,242,71,104,139,35,8,217,192,0,0,0,64,0,0,0,0,51,120,161,8,244,
1244856,153,37,180,242,71,104,139,35,8,217,192,0,0,0,64,0,0,0,0,51,120,177,8,
12449244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,16,64,0,0,0,0,51,120,193,
124508,244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,16,64,0,0,0,0,51,120,
12451209,8,244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,16,64,0,0,0,0,51,
12452120,225,8,244,56,153,37,180,242,71,104,139,35,8,217,192,0,0,32,64,0,0,0,0,
1245332,227,194,0,97,57,162,4,246,104,5,34,92,35,68,225,161,166,220,16,16,137,
12454112,52,41,73,29,185,1,65,196,201,197,145,166,153,246,72,3,137,204,120,34,
1245574,8,199,1,67,17,162,112,201,84,128,97,144,78,25,42,16,131,169,1,205,66,8,
1245635,68,225,161,166,239,128,0,10,192,64,196,104,156,50,96,0,2,172,73,240,117,
1245796,57,170,97,4,104,156,52,52,221,240,0,1,82,1,74,9,129,125,240,0,1,82,32,
12458148,25,174,137,58,23,51,190,0,0,42,69,64,195,32,156,50,96,0,2,160,81,238,2,
124593,107,173,218,3,192,
12462#error invalid endianness defines
12467#undef DUK__REFCINIT
12474#define DUK__ERRFMT_BUFSIZE 256
12476#if defined(DUK_USE_VERBOSE_ERRORS)
12479 const char *filename,
12487 msg[
sizeof(msg) - 1] = (
char) 0;
12492 (
duk_int_t) (line_and_code & 0x00ffffffL));
12501 (
duk_int_t) (line_and_code & 0x00ffffffL));
12516#if defined(DUK_USE_VERBOSE_ERRORS)
12517#if defined(DUK_USE_PARANOID_ERRORS)
12519 const char *filename,
12522 const char *expect_name) {
12527 "%s required, found %s (stack index %ld)",
12529 duk_get_type_name(thr, idx),
12534 const char *filename,
12537 const char *expect_name) {
12542 "%s required, found %s (stack index %ld)",
12615 msg = msg ? msg :
"NULL";
12617#if defined(DUK_USE_FATAL_HANDLER)
12619 DUK_D(
DUK_DPRINT(
"custom default fatal error handler called: %s", msg));
12620 DUK_USE_FATAL_HANDLER(udata, msg);
12621#elif defined(DUK_USE_CPP_EXCEPTIONS)
12625 DUK_D(
DUK_DPRINT(
"built-in default C++ fatal error handler called: %s", msg));
12626 throw duk_fatal_exception(msg);
12643 DUK_D(
DUK_DPRINT(
"built-in default fatal error handler called: %s", msg));
12647 DUK_D(
DUK_DPRINT(
"fatal error handler returned, enter forever loop"));
12654#undef DUK__ERRFMT_BUFSIZE
12666#if defined(DUK_USE_IDCHAR_FASTPATH)
12672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12674 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0,
12676 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
12677 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
12678 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
12679 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0
12692 }
else if (x < 0x800UL) {
12695 }
else if (x < 0x10000UL) {
12698 }
else if (x < 0x200000UL) {
12701 }
else if (x < 0x4000000UL) {
12713#if defined(DUK_USE_ASSERTIONS)
12719 }
else if (x < 0x800UL) {
12722 }
else if (x < 0x10000UL) {
12744 duk_uint8_t marker;
12757 out[i] = (duk_uint8_t) (0x80 + (x & 0x3f));
12764 out[0] = (duk_uint8_t) (marker + x);
12780 out[0] = (duk_uint8_t) x;
12782 }
else if (x < 0x800UL) {
12783 out[0] = (duk_uint8_t) (0xc0 + ((x >> 6) & 0x1f));
12784 out[1] = (duk_uint8_t) (0x80 + (x & 0x3f));
12786 }
else if (x < 0x10000UL) {
12788 out[0] = (duk_uint8_t) (0xe0 + ((x >> 12) & 0x0f));
12789 out[1] = (duk_uint8_t) (0x80 + ((x >> 6) & 0x3f));
12790 out[2] = (duk_uint8_t) (0x80 + (x & 0x3f));
12822 out[0] = (duk_uint8_t) (0xed);
12823 out[1] = (duk_uint8_t) (0xa0 + ((x >> 16) & 0x0f));
12824 out[2] = (duk_uint8_t) (0x80 + ((x >> 10) & 0x3f));
12825 out[3] = (duk_uint8_t) (0xed);
12826 out[4] = (duk_uint8_t) (0xb0 + ((x >> 6) & 0x0f));
12827 out[5] = (duk_uint8_t) (0x80 + (x & 0x3f));
12836 const duk_uint8_t **ptr,
12837 const duk_uint8_t *ptr_start,
12838 const duk_uint8_t *ptr_end,
12840 const duk_uint8_t *p;
12848 if (p < ptr_start || p >= ptr_end) {
12860 res = (duk_uint32_t) (ch & 0x7f);
12862 }
else if (ch < 0xc0) {
12865 }
else if (ch < 0xe0) {
12867 res = (duk_uint32_t) (ch & 0x1f);
12869 }
else if (ch < 0xf0) {
12871 res = (duk_uint32_t) (ch & 0x0f);
12873 }
else if (ch < 0xf8) {
12875 res = (duk_uint32_t) (ch & 0x07);
12877 }
else if (ch < 0xfc) {
12879 res = (duk_uint32_t) (ch & 0x03);
12881 }
else if (ch < 0xfe) {
12883 res = (duk_uint32_t) (ch & 0x01);
12885 }
else if (ch < 0xff) {
12887 res = (duk_uint32_t) (0);
12902 if (p + n > ptr_end) {
12911 if (ch & 0xc0 != 0x80) {
12919 res = (res << 6) + (duk_uint32_t) (ch & 0x3f);
12933 const duk_uint8_t **ptr,
12934 const duk_uint8_t *ptr_start,
12935 const duk_uint8_t *ptr_end) {
12958#if defined(DUK_USE_PREFER_SIZE)
12961 const duk_uint8_t *p;
12962 const duk_uint8_t *p_end;
12967 p_end = data + blen;
12969 while (p != p_end) {
12978 clen = blen - ncont;
12987 const duk_uint8_t *p;
12988 const duk_uint8_t *p_end;
12989 const duk_uint32_t *p32_end;
12990 const duk_uint32_t *p32;
12996 p_end = data + blen;
12998 goto skip_fastpath;
13004 while (((
duk_size_t) (
const void *) p) & 0x03U) {
13013 p32_end = (
const duk_uint32_t *) (
const void *) (p + ((
duk_size_t) (p_end - p) & (
duk_size_t) (~0x03)));
13014 p32 = (
const duk_uint32_t *) (
const void *) p;
13015 while (p32 != (
const duk_uint32_t *) p32_end) {
13040 p = (
const duk_uint8_t *) p32;
13044 while (p != p_end) {
13053 clen = blen - ncont;
13062#if !defined(DUK_USE_PREFER_SIZE)
13069#if !defined(DUK_USE_PREFER_SIZE)
13070 len_safe = len & ~0x03UL;
13071 for (; i < len_safe; i += 4) {
13072 duk_uint8_t t = buf[i] | buf[i + 1] | buf[i + 2] | buf[i + 3];
13090 duk_uint32_t mincp;
13113 }
else if (t <= 0xefU) {
13117 }
else if (t <= 0xf7U) {
13124 if (left < ncont) {
13127 while (ncont > 0U) {
13129 if ((t & 0xc0U) != 0x80U) {
13132 cp = (cp << 6) + (t & 0x3fU);
13135 if (cp < mincp || cp > 0x10ffffUL || (cp >= 0xd800UL && cp <= 0xdfffUL)) {
13164 return t + 0x0fU + 0xfeU;
13167 return t + 0x0fU + 0xfeU + 0x1000UL;
13176 bd_ctx.
data = (
const duk_uint8_t *) unitab;
13195 (
unsigned long) cp,
13196 (
unsigned long) r1,
13197 (
unsigned long) r2));
13198 if (cp >= r1 && cp <= r2) {
13269 if (hi == 0x0000UL) {
13270 if (lo == 0x09U || lo == 0x0bU || lo == 0x0cU || lo == 0x20U || lo == 0xa0U) {
13273 }
else if (hi == 0x0020UL) {
13274 if (lo <= 0x0aU || lo == 0x2fU || lo == 0x5fU) {
13277 }
else if (cp == 0x1680L || cp == 0x180eL || cp == 0x3000L || cp == 0xfeffL) {
13296 if (cp == 0x000aL || cp == 0x000dL || cp == 0x2028L || cp == 0x2029L) {
13344#if defined(DUK_USE_IDCHAR_FASTPATH)
13347 if ((cp >=
'a' && cp <=
'z') || (cp >=
'A' && cp <=
'Z') || cp ==
'_' || cp ==
'$') {
13356#if defined(DUK_USE_SOURCE_NONBMP)
13362 if (cp < 0x10000L) {
13427#if defined(DUK_USE_IDCHAR_FASTPATH)
13430 if ((cp >=
'a' && cp <=
'z') || (cp >=
'A' && cp <=
'Z') || (cp >=
'0' && cp <=
'9') || cp ==
'_' || cp ==
'$') {
13439#if defined(DUK_USE_SOURCE_NONBMP)
13446 if (cp < 0x10000L) {
13449 sizeof(duk_unicode_idp_m_ids_noabmp),
13483 if ((cp >=
'a' && cp <=
'z') || (cp >=
'A' && cp <=
'Z')) {
13491#if defined(DUK_USE_SOURCE_NONBMP)
13498 if (cp < 0x10000L) {
13501 sizeof(duk_unicode_ids_m_let_noabmp),
13571 if (cp >= start_i) {
13572 tmp_cp = cp - start_i;
13576 cp = start_o + tmp_cp;
13590 if (cp == start_i) {
13604 if (cp == start_i) {
13659 if (cp >=
'a' && cp <=
'z') {
13660 cp = cp -
'a' +
'A';
13663 if (cp >=
'A' && cp <=
'Z') {
13664 cp = cp -
'A' +
'a';
13686 if (cp == 0x03a3L &&
13735 const duk_uint8_t *p, *p_start, *p_end;
13786#if defined(DUK_USE_REGEXP_SUPPORT)
13796#if defined(DUK_USE_REGEXP_CANON_WORKAROUND)
13814 if ((y < 0) || (cp >= 0x80 && y < 0x80)) {
13835 if ((x >=
'0' && x <=
'9') || (x >=
'a' && x <=
'z') || (x >=
'A' && x <=
'Z') || (x ==
'_')) {
13847 (duk_uint16_t) 0x0030UL,
13848 (duk_uint16_t) 0x0039UL,
13851 (duk_uint16_t) 0x0009UL, (duk_uint16_t) 0x000DUL, (duk_uint16_t) 0x0020UL, (duk_uint16_t) 0x0020UL, (duk_uint16_t) 0x00A0UL,
13852 (duk_uint16_t) 0x00A0UL, (duk_uint16_t) 0x1680UL, (duk_uint16_t) 0x1680UL, (duk_uint16_t) 0x180EUL, (duk_uint16_t) 0x180EUL,
13853 (duk_uint16_t) 0x2000UL, (duk_uint16_t) 0x200AUL, (duk_uint16_t) 0x2028UL, (duk_uint16_t) 0x2029UL, (duk_uint16_t) 0x202FUL,
13854 (duk_uint16_t) 0x202FUL, (duk_uint16_t) 0x205FUL, (duk_uint16_t) 0x205FUL, (duk_uint16_t) 0x3000UL, (duk_uint16_t) 0x3000UL,
13855 (duk_uint16_t) 0xFEFFUL, (duk_uint16_t) 0xFEFFUL,
13858 (duk_uint16_t) 0x0030UL, (duk_uint16_t) 0x0039UL, (duk_uint16_t) 0x0041UL, (duk_uint16_t) 0x005AUL,
13859 (duk_uint16_t) 0x005FUL, (duk_uint16_t) 0x005FUL, (duk_uint16_t) 0x0061UL, (duk_uint16_t) 0x007AUL,
13862 (duk_uint16_t) 0x0000UL,
13863 (duk_uint16_t) 0x002FUL,
13864 (duk_uint16_t) 0x003AUL,
13865 (duk_uint16_t) 0xFFFFUL,
13868 (duk_uint16_t) 0x0000UL, (duk_uint16_t) 0x0008UL, (duk_uint16_t) 0x000EUL, (duk_uint16_t) 0x001FUL, (duk_uint16_t) 0x0021UL,
13869 (duk_uint16_t) 0x009FUL, (duk_uint16_t) 0x00A1UL, (duk_uint16_t) 0x167FUL, (duk_uint16_t) 0x1681UL, (duk_uint16_t) 0x180DUL,
13870 (duk_uint16_t) 0x180FUL, (duk_uint16_t) 0x1FFFUL, (duk_uint16_t) 0x200BUL, (duk_uint16_t) 0x2027UL, (duk_uint16_t) 0x202AUL,
13871 (duk_uint16_t) 0x202EUL, (duk_uint16_t) 0x2030UL, (duk_uint16_t) 0x205EUL, (duk_uint16_t) 0x2060UL, (duk_uint16_t) 0x2FFFUL,
13872 (duk_uint16_t) 0x3001UL, (duk_uint16_t) 0xFEFEUL, (duk_uint16_t) 0xFF00UL, (duk_uint16_t) 0xFFFFUL,
13875 (duk_uint16_t) 0x0000UL, (duk_uint16_t) 0x002FUL, (duk_uint16_t) 0x003AUL, (duk_uint16_t) 0x0040UL, (duk_uint16_t) 0x005BUL,
13876 (duk_uint16_t) 0x005EUL, (duk_uint16_t) 0x0060UL, (duk_uint16_t) 0x0060UL, (duk_uint16_t) 0x007BUL, (duk_uint16_t) 0xFFFFUL,
13903#if defined(DUK_USE_64BIT_OPS)
13904union duk__u64_union {
13908typedef union duk__u64_union duk__u64_union;
13914 u.
x = DUK_NTOH16(u.
x);
13921 u.
x = DUK_NTOH32(u.
x);
13934 duk_memcpy((
void *) du.
uc, (
const void *) p, (
size_t) 8);
13965 u.
x = DUK_HTON16(val);
13966 duk_memcpy((
void *) p, (
const void *) u.
b, (
size_t) 2);
13971 u.
x = DUK_HTON32(val);
13972 duk_memcpy((
void *) p, (
const void *) u.
b, (
size_t) 4);
13979 duk_memcpy((
void *) p, (
const void *) fu.
uc, (
size_t) 4);
13986 duk_memcpy((
void *) p, (
const void *) du.
uc, (
size_t) 8);
14058 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14060 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14061 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
14062 -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14063 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14064 -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14065 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14066 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14068 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14069 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14072 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
14076#if defined(DUK_USE_HEX_FASTPATH)
14079 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14080 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14082 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, -1, -1, -1, -1, -1, -1,
14083 -1, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14084 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14085 -1, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14086 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14088 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14089 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14090 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14094 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
14102#if defined(DUK_USE_HEX_FASTPATH)
14115#if defined(DUK_USE_INTEGER_BE)
14116 0x3030U, 0x3031U, 0x3032U, 0x3033U, 0x3034U, 0x3035U, 0x3036U, 0x3037U, 0x3038U, 0x3039U, 0x3061U, 0x3062U, 0x3063U,
14117 0x3064U, 0x3065U, 0x3066U, 0x3130U, 0x3131U, 0x3132U, 0x3133U, 0x3134U, 0x3135U, 0x3136U, 0x3137U, 0x3138U, 0x3139U,
14118 0x3161U, 0x3162U, 0x3163U, 0x3164U, 0x3165U, 0x3166U, 0x3230U, 0x3231U, 0x3232U, 0x3233U, 0x3234U, 0x3235U, 0x3236U,
14119 0x3237U, 0x3238U, 0x3239U, 0x3261U, 0x3262U, 0x3263U, 0x3264U, 0x3265U, 0x3266U, 0x3330U, 0x3331U, 0x3332U, 0x3333U,
14120 0x3334U, 0x3335U, 0x3336U, 0x3337U, 0x3338U, 0x3339U, 0x3361U, 0x3362U, 0x3363U, 0x3364U, 0x3365U, 0x3366U, 0x3430U,
14121 0x3431U, 0x3432U, 0x3433U, 0x3434U, 0x3435U, 0x3436U, 0x3437U, 0x3438U, 0x3439U, 0x3461U, 0x3462U, 0x3463U, 0x3464U,
14122 0x3465U, 0x3466U, 0x3530U, 0x3531U, 0x3532U, 0x3533U, 0x3534U, 0x3535U, 0x3536U, 0x3537U, 0x3538U, 0x3539U, 0x3561U,
14123 0x3562U, 0x3563U, 0x3564U, 0x3565U, 0x3566U, 0x3630U, 0x3631U, 0x3632U, 0x3633U, 0x3634U, 0x3635U, 0x3636U, 0x3637U,
14124 0x3638U, 0x3639U, 0x3661U, 0x3662U, 0x3663U, 0x3664U, 0x3665U, 0x3666U, 0x3730U, 0x3731U, 0x3732U, 0x3733U, 0x3734U,
14125 0x3735U, 0x3736U, 0x3737U, 0x3738U, 0x3739U, 0x3761U, 0x3762U, 0x3763U, 0x3764U, 0x3765U, 0x3766U, 0x3830U, 0x3831U,
14126 0x3832U, 0x3833U, 0x3834U, 0x3835U, 0x3836U, 0x3837U, 0x3838U, 0x3839U, 0x3861U, 0x3862U, 0x3863U, 0x3864U, 0x3865U,
14127 0x3866U, 0x3930U, 0x3931U, 0x3932U, 0x3933U, 0x3934U, 0x3935U, 0x3936U, 0x3937U, 0x3938U, 0x3939U, 0x3961U, 0x3962U,
14128 0x3963U, 0x3964U, 0x3965U, 0x3966U, 0x6130U, 0x6131U, 0x6132U, 0x6133U, 0x6134U, 0x6135U, 0x6136U, 0x6137U, 0x6138U,
14129 0x6139U, 0x6161U, 0x6162U, 0x6163U, 0x6164U, 0x6165U, 0x6166U, 0x6230U, 0x6231U, 0x6232U, 0x6233U, 0x6234U, 0x6235U,
14130 0x6236U, 0x6237U, 0x6238U, 0x6239U, 0x6261U, 0x6262U, 0x6263U, 0x6264U, 0x6265U, 0x6266U, 0x6330U, 0x6331U, 0x6332U,
14131 0x6333U, 0x6334U, 0x6335U, 0x6336U, 0x6337U, 0x6338U, 0x6339U, 0x6361U, 0x6362U, 0x6363U, 0x6364U, 0x6365U, 0x6366U,
14132 0x6430U, 0x6431U, 0x6432U, 0x6433U, 0x6434U, 0x6435U, 0x6436U, 0x6437U, 0x6438U, 0x6439U, 0x6461U, 0x6462U, 0x6463U,
14133 0x6464U, 0x6465U, 0x6466U, 0x6530U, 0x6531U, 0x6532U, 0x6533U, 0x6534U, 0x6535U, 0x6536U, 0x6537U, 0x6538U, 0x6539U,
14134 0x6561U, 0x6562U, 0x6563U, 0x6564U, 0x6565U, 0x6566U, 0x6630U, 0x6631U, 0x6632U, 0x6633U, 0x6634U, 0x6635U, 0x6636U,
14135 0x6637U, 0x6638U, 0x6639U, 0x6661U, 0x6662U, 0x6663U, 0x6664U, 0x6665U, 0x6666U
14137 0x3030U, 0x3130U, 0x3230U, 0x3330U, 0x3430U, 0x3530U, 0x3630U, 0x3730U, 0x3830U, 0x3930U, 0x6130U, 0x6230U, 0x6330U,
14138 0x6430U, 0x6530U, 0x6630U, 0x3031U, 0x3131U, 0x3231U, 0x3331U, 0x3431U, 0x3531U, 0x3631U, 0x3731U, 0x3831U, 0x3931U,
14139 0x6131U, 0x6231U, 0x6331U, 0x6431U, 0x6531U, 0x6631U, 0x3032U, 0x3132U, 0x3232U, 0x3332U, 0x3432U, 0x3532U, 0x3632U,
14140 0x3732U, 0x3832U, 0x3932U, 0x6132U, 0x6232U, 0x6332U, 0x6432U, 0x6532U, 0x6632U, 0x3033U, 0x3133U, 0x3233U, 0x3333U,
14141 0x3433U, 0x3533U, 0x3633U, 0x3733U, 0x3833U, 0x3933U, 0x6133U, 0x6233U, 0x6333U, 0x6433U, 0x6533U, 0x6633U, 0x3034U,
14142 0x3134U, 0x3234U, 0x3334U, 0x3434U, 0x3534U, 0x3634U, 0x3734U, 0x3834U, 0x3934U, 0x6134U, 0x6234U, 0x6334U, 0x6434U,
14143 0x6534U, 0x6634U, 0x3035U, 0x3135U, 0x3235U, 0x3335U, 0x3435U, 0x3535U, 0x3635U, 0x3735U, 0x3835U, 0x3935U, 0x6135U,
14144 0x6235U, 0x6335U, 0x6435U, 0x6535U, 0x6635U, 0x3036U, 0x3136U, 0x3236U, 0x3336U, 0x3436U, 0x3536U, 0x3636U, 0x3736U,
14145 0x3836U, 0x3936U, 0x6136U, 0x6236U, 0x6336U, 0x6436U, 0x6536U, 0x6636U, 0x3037U, 0x3137U, 0x3237U, 0x3337U, 0x3437U,
14146 0x3537U, 0x3637U, 0x3737U, 0x3837U, 0x3937U, 0x6137U, 0x6237U, 0x6337U, 0x6437U, 0x6537U, 0x6637U, 0x3038U, 0x3138U,
14147 0x3238U, 0x3338U, 0x3438U, 0x3538U, 0x3638U, 0x3738U, 0x3838U, 0x3938U, 0x6138U, 0x6238U, 0x6338U, 0x6438U, 0x6538U,
14148 0x6638U, 0x3039U, 0x3139U, 0x3239U, 0x3339U, 0x3439U, 0x3539U, 0x3639U, 0x3739U, 0x3839U, 0x3939U, 0x6139U, 0x6239U,
14149 0x6339U, 0x6439U, 0x6539U, 0x6639U, 0x3061U, 0x3161U, 0x3261U, 0x3361U, 0x3461U, 0x3561U, 0x3661U, 0x3761U, 0x3861U,
14150 0x3961U, 0x6161U, 0x6261U, 0x6361U, 0x6461U, 0x6561U, 0x6661U, 0x3062U, 0x3162U, 0x3262U, 0x3362U, 0x3462U, 0x3562U,
14151 0x3662U, 0x3762U, 0x3862U, 0x3962U, 0x6162U, 0x6262U, 0x6362U, 0x6462U, 0x6562U, 0x6662U, 0x3063U, 0x3163U, 0x3263U,
14152 0x3363U, 0x3463U, 0x3563U, 0x3663U, 0x3763U, 0x3863U, 0x3963U, 0x6163U, 0x6263U, 0x6363U, 0x6463U, 0x6563U, 0x6663U,
14153 0x3064U, 0x3164U, 0x3264U, 0x3364U, 0x3464U, 0x3564U, 0x3664U, 0x3764U, 0x3864U, 0x3964U, 0x6164U, 0x6264U, 0x6364U,
14154 0x6464U, 0x6564U, 0x6664U, 0x3065U, 0x3165U, 0x3265U, 0x3365U, 0x3465U, 0x3565U, 0x3665U, 0x3765U, 0x3865U, 0x3965U,
14155 0x6165U, 0x6265U, 0x6365U, 0x6465U, 0x6565U, 0x6665U, 0x3066U, 0x3166U, 0x3266U, 0x3366U, 0x3466U, 0x3566U, 0x3666U,
14156 0x3766U, 0x3866U, 0x3966U, 0x6166U, 0x6266U, 0x6366U, 0x6466U, 0x6566U, 0x6666U
14167#if defined(DUK_USE_DEBUGGER_SUPPORT)
14170 duk_uint8_t *q = p + len - 1;
14172 while (p - q < 0) {
14187#if defined(DUK_USE_GET_RANDOM_DOUBLE)
14199#if (DUK_STRIDX_UC_ARGUMENTS > 255)
14200#error constant too large
14202#if (DUK_STRIDX_UC_ARRAY > 255)
14203#error constant too large
14205#if (DUK_STRIDX_UC_BOOLEAN > 255)
14206#error constant too large
14208#if (DUK_STRIDX_UC_DATE > 255)
14209#error constant too large
14211#if (DUK_STRIDX_UC_ERROR > 255)
14212#error constant too large
14214#if (DUK_STRIDX_UC_FUNCTION > 255)
14215#error constant too large
14217#if (DUK_STRIDX_JSON > 255)
14218#error constant too large
14220#if (DUK_STRIDX_MATH > 255)
14221#error constant too large
14223#if (DUK_STRIDX_UC_NUMBER > 255)
14224#error constant too large
14226#if (DUK_STRIDX_UC_OBJECT > 255)
14227#error constant too large
14229#if (DUK_STRIDX_REG_EXP > 255)
14230#error constant too large
14232#if (DUK_STRIDX_UC_STRING > 255)
14233#error constant too large
14235#if (DUK_STRIDX_GLOBAL > 255)
14236#error constant too large
14238#if (DUK_STRIDX_OBJ_ENV > 255)
14239#error constant too large
14241#if (DUK_STRIDX_DEC_ENV > 255)
14242#error constant too large
14244#if (DUK_STRIDX_UC_POINTER > 255)
14245#error constant too large
14247#if (DUK_STRIDX_UC_THREAD > 255)
14248#error constant too large
14250#if (DUK_STRIDX_ARRAY_BUFFER > 255)
14251#error constant too large
14253#if (DUK_STRIDX_DATA_VIEW > 255)
14254#error constant too large
14256#if (DUK_STRIDX_INT8_ARRAY > 255)
14257#error constant too large
14259#if (DUK_STRIDX_UINT8_ARRAY > 255)
14260#error constant too large
14262#if (DUK_STRIDX_UINT8_CLAMPED_ARRAY > 255)
14263#error constant too large
14265#if (DUK_STRIDX_INT16_ARRAY > 255)
14266#error constant too large
14268#if (DUK_STRIDX_UINT16_ARRAY > 255)
14269#error constant too large
14271#if (DUK_STRIDX_INT32_ARRAY > 255)
14272#error constant too large
14274#if (DUK_STRIDX_UINT32_ARRAY > 255)
14275#error constant too large
14277#if (DUK_STRIDX_FLOAT32_ARRAY > 255)
14278#error constant too large
14280#if (DUK_STRIDX_FLOAT64_ARRAY > 255)
14281#error constant too large
14283#if (DUK_STRIDX_EMPTY_STRING > 255)
14284#error constant too large
14331#if defined(DUK_USE_PROVIDE_DEFAULT_ALLOC_FUNCTIONS)
14344 DUK_DDD(
DUK_DDDPRINT(
"default realloc function: %p %lu -> %p", (
void *) ptr, (
unsigned long) newsize, (
void *) res));
14441#if defined(DUK_USE_BYTECODE_DUMP_SUPPORT)
14443#define DUK__SER_MARKER 0xbf
14444#define DUK__SER_STRING 0x00
14445#define DUK__SER_NUMBER 0x01
14446#define DUK__BYTECODE_INITIAL_ALLOC 256
14447#define DUK__NO_FORMALS 0xffffffffUL
14469 duk_memcpy((
void *) buf, (
const void *) p, (
size_t) len);
14476 duk_uint32_t tmp32;
14482 tmp32 = (duk_uint32_t) len;
14491 duk_uint32_t tmp32;
14499 tmp32 = (duk_uint32_t) len;
14556 duk_uint32_t def_value) {
14594#if defined(DUK_USE_FASTINT)
14631 for (i = 0; i < h->
length; i++) {
14648 DUK_DD(
DUK_DDPRINT(
"dumping function without _Formals, emit marker to indicate missing _Formals"));
14660 duk_uint32_t count_instr;
14661 duk_uint32_t tmp32;
14662 duk_uint16_t tmp16;
14666 "consts=[%p,%p[ (%ld bytes, %ld items), "
14667 "funcs=[%p,%p[ (%ld bytes, %ld items), "
14668 "code=[%p,%p[ (%ld bytes, %ld items)",
14686 p =
DUK_BW_ENSURE_RAW(thr, bw_ctx, 3U * 4U + 2U * 2U + 3U * 4U + count_instr * 4U, p);
14689 tmp32 = count_instr;
14695 tmp16 = func->nregs;
14697 tmp16 = func->nargs;
14699#if defined(DUK_USE_DEBUGGER_SUPPORT)
14700 tmp32 = func->start_line;
14702 tmp32 = func->end_line;
14718#if defined(DUK_USE_INTEGER_BE)
14723 while (ins != ins_end) {
14724 tmp32 = (duk_uint32_t) (*ins);
14733 while (tv != tv_end) {
14757 while (fn != fn_end) {
14779#if defined(DUK_USE_FUNC_NAME_PROPERTY)
14782#if defined(DUK_USE_FUNC_FILENAME_PROPERTY)
14785#if defined(DUK_USE_PC2LINE)
14791 DUK_DD(
DUK_DDPRINT(
"serialized function %p -> final pointer %p", (
void *) func, (
void *) p));
14806#define DUK__ASSERT_LEFT(n) \
14808 DUK_ASSERT((duk_size_t) (p_end - p) >= (duk_size_t) (n)); \
14815 duk_uint32_t count_instr, count_const, count_funcs;
14817 duk_uint32_t tmp32;
14819 duk_uint8_t *fun_data;
14835 DUK_DD(
DUK_DDPRINT(
"loading function, p=%p, p_end=%p", (
const void *) p, (
const void *) p_end));
14845 (
long) count_instr,
14846 (
long) count_const,
14847 (
long) count_const,
14848 (
long) data_size));
14870#if defined(DUK_USE_DEBUGGER_SUPPORT)
14905#if defined(DUK_USE_INTEGER_BE)
14911 for (n = count_instr; n > 0; n--) {
14918 for (n = count_const; n > 0; n--) {
14921 switch (const_type) {
14945 for (n = count_funcs; n > 0; n--) {
14967 DUK_ASSERT((count_const == 0 && count_funcs == 0) || tv1 != NULL);
14971 for (n = count_const; n > 0; n--) {
14975 tv1 += count_const;
14978 for (n = count_funcs; n > 0; n--) {
15004#if defined(DUK_USE_FUNC_NAME_PROPERTY)
15048#if defined(DUK_USE_FUNC_FILENAME_PROPERTY)
15069#if defined(DUK_USE_PC2LINE)
15095 for (arr_idx = 0; arr_idx < arr_limit; arr_idx++) {
15146 const duk_uint8_t *p_buf, *p, *p_end;
15164 p_end = p_buf + sz;
15200#undef DUK__ASSERT_LEFT
15201#undef DUK__BYTECODE_INITIAL_ALLOC
15202#undef DUK__NO_FORMALS
15203#undef DUK__SER_MARKER
15204#undef DUK__SER_NUMBER
15205#undef DUK__SER_STRING
15292 DUK_DDD(
DUK_DDDPRINT(
"duk__call_prop_prep_stack, normalized_obj_idx=%ld, nargs=%ld, stacktop=%ld",
15293 (
long) normalized_obj_idx,
15305#if defined(DUK_USE_VERBOSE_ERRORS)
15326 duk_dup(thr, normalized_obj_idx);
15508 thr->
valstack_end + nargs < thr->valstack_top + nrets)) {
15509 DUK_D(
DUK_DPRINT(
"not enough stack reserve for safe call or invalid arguments: "
15510 "nargs=%ld < 0 (?), nrets=%ld < 0 (?), top=%ld < bottom=%ld + nargs=%ld (?), "
15511 "end=%ld + nargs=%ld < top=%ld + nrets=%ld (?)",
15682 nf->
magic = (duk_int16_t) magic;
15744 const void *def_ptr = (
const void *) out_len;
15752 ptr = (
const void *)
15768 return (
const duk_uint8_t *) ptr;
15775#if defined(DUK_USE_BASE64_SUPPORT)
15785#if defined(DUK_USE_BASE64_FASTPATH)
15787 0x41U, 0x42U, 0x43U, 0x44U, 0x45U, 0x46U, 0x47U, 0x48U, 0x49U, 0x4aU, 0x4bU, 0x4cU, 0x4dU, 0x4eU, 0x4fU, 0x50U,
15788 0x51U, 0x52U, 0x53U, 0x54U, 0x55U, 0x56U, 0x57U, 0x58U, 0x59U, 0x5aU, 0x61U, 0x62U, 0x63U, 0x64U, 0x65U, 0x66U,
15789 0x67U, 0x68U, 0x69U, 0x6aU, 0x6bU, 0x6cU, 0x6dU, 0x6eU, 0x6fU, 0x70U, 0x71U, 0x72U, 0x73U, 0x74U, 0x75U, 0x76U,
15790 0x77U, 0x78U, 0x79U, 0x7aU, 0x30U, 0x31U, 0x32U, 0x33U, 0x34U, 0x35U, 0x36U, 0x37U, 0x38U, 0x39U, 0x2bU, 0x2fU
15794#if defined(DUK_USE_BASE64_FASTPATH)
15802 -3, -3, -3, -3, -3, -3, -3, -3, -3, -1, -1, -3, -3, -1, -3, -3,
15803 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
15804 -1, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, 62, -3, -3, -3, 63,
15805 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -3, -3, -3, -2, -3, -3,
15806 -3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15807 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -3, -3, -3, -3, -3,
15808 -3, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
15809 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -3, -3, -3, -3, -3,
15810 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
15811 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
15812 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
15813 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
15814 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
15815 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
15816 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
15817 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3
15821#if defined(DUK_USE_BASE64_FASTPATH)
15869 const duk_uint8_t *p;
15882 const duk_uint8_t *p_end_fast;
15884 p_end_fast = p + ((n / 12U) * 12U);
15915 }
else if (n == 2U) {
15931 const duk_uint8_t *p;
15932 const duk_uint8_t *p_end;
15936 p_end = src + srclen;
15940 while (p < p_end) {
15943 for (i = 0; i < 3; i++) {
15961 for (i = 0; i < 4; i++) {
15962 x = ((t >> 18) & 0x3fU);
15974 }
else if (x == 62) {
15982 *q++ = (duk_uint8_t) y;
15994 while (npad > 0U) {
16001#if defined(DUK_USE_BASE64_FASTPATH)
16005 duk_uint8_t **out_dst_final) {
16010 const duk_uint8_t *p;
16011 const duk_uint8_t *p_end;
16012 const duk_uint8_t *p_end_safe;
16018 p_end = src + srclen;
16019 p_end_safe = p_end - 8;
16050 (
const void *) p_end_safe,
16051 (
const void *) p_end));
16063 q[0] = (duk_uint8_t) (((
duk_uint_t) t1 >> 16) & 0xffU);
16064 q[1] = (duk_uint8_t) (((
duk_uint_t) t1 >> 8) & 0xffU);
16065 q[2] = (duk_uint8_t) ((
duk_uint_t) t1 & 0xffU);
16067 q[3] = (duk_uint8_t) (((
duk_uint_t) t2 >> 16) & 0xffU);
16068 q[4] = (duk_uint8_t) (((
duk_uint_t) t2 >> 8) & 0xffU);
16069 q[5] = (duk_uint8_t) ((
duk_uint_t) t2 & 0xffU);
16075 }
else if (t1 >= 0) {
16077 DUK_DDDPRINT(
"fast loop first group was clean, second was not, process one slow path group"));
16084 "fast loop first group was not clean, second does not matter, process one slow path group"));
16104 (
const void *) p_end,
16105 (
unsigned long) t));
16112 if (t >= 0x1000000UL) {
16115 }
else if (x == -1) {
16117 }
else if (x == -2) {
16133 while (t < 0x1000000UL) {
16150 q[0] = (duk_uint8_t) ((t >> 16) & 0xffU);
16151 q[1] = (duk_uint8_t) ((t >> 8) & 0xffU);
16152 q[2] = (duk_uint8_t) (t & 0xffU);
16185 if (x == -1 || x == -2) {
16199 *out_dst_final = q;
16209 duk_uint8_t **out_dst_final) {
16213 const duk_uint8_t *p;
16214 const duk_uint8_t *p_end;
16217 duk_uint32_t mask_white = (1U << 9) | (1U << 10) | (1U << 13);
16231 p_end = src + srclen;
16247 goto simulate_padding;
16256 if (x >= 0x61U && x <= 0x7aU) {
16258 }
else if (x <= 0x5aU) {
16263 }
else if (x >= 0x30U) {
16268 }
else if (x == 0x3dU) {
16276 goto simulate_padding;
16280 }
else if (x >= 0x20U) {
16285 }
else if (x == 0x2fU) {
16287 }
else if (x == 0x20U) {
16297 if (mask_white & m) {
16307 if (t < 0x1000000UL) {
16314 while (t < 0x1000000UL) {
16320 q[0] = (duk_uint8_t) ((t >> 16) & 0xffU);
16321 q[1] = (duk_uint8_t) ((t >> 8) & 0xffU);
16322 q[2] = (duk_uint8_t) (t & 0xffU);
16341 *out_dst_final = q;
16350 const duk_uint8_t *src;
16368 if (srclen > 3221225469UL) {
16371 dstlen = (srclen + 2U) / 3U * 4U;
16386 const duk_uint8_t *src;
16390 duk_uint8_t *dst_final;
16405 dstlen = (srclen / 4) * 3 + 6;
16440#if defined(DUK_USE_HEX_SUPPORT)
16442 const duk_uint8_t *inp;
16447#if defined(DUK_USE_HEX_FASTPATH)
16462#if defined(DUK_USE_HEX_FASTPATH)
16464 p16 = (duk_uint16_t *) (
void *) buf;
16465 len_safe = len & ~0x03U;
16466 for (i = 0; i < len_safe; i += 4) {
16473 for (; i < len; i++) {
16477 for (i = 0; i < len; i++) {
16498 const duk_uint8_t *inp;
16503#if defined(DUK_USE_HEX_FASTPATH)
16523#if defined(DUK_USE_HEX_FASTPATH)
16525 len_safe = len & ~0x07U;
16526 for (i = 0; i < len_safe; i += 8) {
16529 p[0] = (duk_uint8_t) t;
16532 p[1] = (duk_uint8_t) t;
16535 p[2] = (duk_uint8_t) t;
16538 p[3] = (duk_uint8_t) t;
16546 for (; i < len; i += 2) {
16556 *p++ = (duk_uint8_t) t;
16559 for (i = 0; i < len; i += 2) {
16569 buf[i >> 1] = (duk_uint8_t) t;
16597#if defined(DUK_USE_JSON_SUPPORT)
16599#if defined(DUK_USE_ASSERTIONS)
16605#if defined(DUK_USE_ASSERTIONS)
16625#if defined(DUK_USE_ASSERTIONS)
16630#if defined(DUK_USE_ASSERTIONS)
16733 flags = comp_args->
flags;
16747 (h_sourcecode == NULL)) {
16801 comp_args->
src_buffer = (
const duk_uint8_t *) src_buffer;
16803 comp_args->
flags = flags;
16816 nargs = flags & 0x07;
16835#if defined(DUK_USE_JSON_SUPPORT)
16848 for (idx = 0; idx < top; idx++) {
16876#if defined(DUK_USE_DEBUGGER_SUPPORT)
16903 heap->dbg_read_cb = read_cb;
16904 heap->dbg_write_cb = write_cb;
16905 heap->dbg_peek_cb = peek_cb;
16906 heap->dbg_read_flush_cb = read_flush_cb;
16907 heap->dbg_write_flush_cb = write_flush_cb;
16908 heap->dbg_request_cb = request_cb;
16909 heap->dbg_detached_cb = detached_cb;
16910 heap->dbg_udata = udata;
16911 heap->dbg_have_next_byte = 0;
16914 heap->dbg_processing = 0;
16915 heap->dbg_state_dirty = 0;
16916 heap->dbg_force_restart = 0;
16917 heap->dbg_pause_flags = 0;
16918 heap->dbg_pause_act = NULL;
16919 heap->dbg_pause_startline = 0;
16920 heap->dbg_exec_counter = 0;
16921 heap->dbg_last_counter = 0;
16922 heap->dbg_last_time = 0.0;
16923 duk_debug_set_paused(heap);
16936 duk_debug_write_bytes(thr, (
const duk_uint8_t *) str, len);
16937 duk_debug_write_flush(thr);
16948 duk_debug_do_detach(thr->
heap);
16957 if (!duk_debug_is_attached(thr->
heap)) {
16968 processed_messages = duk_debug_process_messages(thr, 1 );
16980 DUK_D(
DUK_DPRINT(
"application called duk_debugger_notify() with nvalues=%ld", (
long) nvalues));
16983 if (top < nvalues) {
16987 if (duk_debug_is_attached(thr->
heap)) {
16989 for (idx = top - nvalues; idx < top; idx++) {
16991 duk_debug_write_tval(thr, tv);
16993 duk_debug_write_eom(thr);
17000 if (duk_debug_is_attached(thr->
heap)) {
17015 if (duk_debug_is_attached(thr->
heap)) {
17016 if (duk_debug_is_paused(thr->
heap)) {
17017 DUK_D(
DUK_DPRINT(
"duk_debugger_pause() called when already paused; ignoring"));
17019 duk_debug_set_paused(thr->
heap);
17073 if (top < nvalues) {
17125#if defined(DUK_USE_PROVIDE_DEFAULT_ALLOC_FUNCTIONS)
17130 DUK_D(
DUK_DPRINT(
"no allocation functions given and no default providers"));
17138 if (!fatal_handler) {
17147 heap =
duk_heap_alloc(alloc_func, realloc_func, free_func, heap_udata, fatal_handler);
17311 const char *p_curr;
17340#define DUK__IDX_TYPE 0
17341#define DUK__IDX_ITAG 1
17342#define DUK__IDX_REFC 2
17343#define DUK__IDX_HBYTES 3
17344#define DUK__IDX_CLASS 4
17345#define DUK__IDX_PBYTES 5
17346#define DUK__IDX_ESIZE 6
17347#define DUK__IDX_ENEXT 7
17348#define DUK__IDX_ASIZE 8
17349#define DUK__IDX_HSIZE 9
17350#define DUK__IDX_BCBYTES 10
17351#define DUK__IDX_DBYTES 11
17352#define DUK__IDX_TSTATE 12
17353#define DUK__IDX_VARIANT 13
17367 duk_memset((
void *) &vals, (
int) 0xff,
sizeof(vals));
17391#if defined(DUK_USE_REFERENCE_COUNTING)
17403#if defined(DUK_USE_HSTRING_EXTDATA)
17423#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
17539#if defined(DUK_USE_PC2LINE)
17556#undef DUK__IDX_ASIZE
17557#undef DUK__IDX_BCBYTES
17558#undef DUK__IDX_CLASS
17559#undef DUK__IDX_DBYTES
17560#undef DUK__IDX_ENEXT
17561#undef DUK__IDX_ESIZE
17562#undef DUK__IDX_HBYTES
17563#undef DUK__IDX_HSIZE
17564#undef DUK__IDX_ITAG
17565#undef DUK__IDX_PBYTES
17566#undef DUK__IDX_REFC
17567#undef DUK__IDX_TSTATE
17568#undef DUK__IDX_TYPE
17569#undef DUK__IDX_VARIANT
17705#if !defined(DUK_USE_PREFER_SIZE)
17756 if (out_has_prop) {
17757 *out_has_prop = rc;
17783 if (h_obj == NULL) {
17789 if (tv_val == NULL) {
17810 (
duk_idx_t) (duk_int16_t) (packed_args >> 16),
17829 DUK_ASSERT((idx_key == -2 && (idx_key ^ 1) == -1) || (idx_key == -1 && (idx_key ^ 1) == -2));
17870#if !defined(DUK_USE_PREFER_SIZE)
17952#if !defined(DUK_USE_PREFER_SIZE)
18035#if !defined(DUK_USE_PREFER_SIZE)
18132 (
duk_idx_t) (duk_int8_t) (packed_args >> 24),
18197 if (is_data_desc && is_acc_desc) {
18202 goto fail_invalid_desc;
18210 goto fail_not_callable;
18220 goto fail_not_callable;
18227 idx_value = idx_base;
18317 goto fail_cannot_freeze;
18331 goto fail_cannot_freeze;
18374 while (ent->
key != NULL) {
18390 while (ent->
key != NULL) {
18432#if !defined(DUK_USE_PREFER_SIZE)
18493#if !defined(DUK_USE_PREFER_SIZE)
18577#if defined(DUK_USE_ROM_OBJECTS)
18597#if defined(DUK_USE_ROM_OBJECTS)
18617 return (proto == NULL);
18624#if defined(DUK_USE_FINALIZER_SUPPORT)
18722#if !defined(DUK_USE_VARIADIC_MACROS)
18733#if !defined(DUK_USE_PACKED_TVAL)
18747#define DUK__ASSERT_SPACE() \
18749 DUK_ASSERT(!(thr->valstack_top >= thr->valstack_end)); \
18753#if defined(DUK_USE_VALSTACK_UNSAFE)
18755#define DUK__CHECK_SPACE() DUK__ASSERT_SPACE()
18757#define DUK__CHECK_SPACE() \
18759 if (DUK_UNLIKELY(thr->valstack_top >= thr->valstack_end)) { \
18760 DUK_ERROR_RANGE_PUSH_BEYOND(thr); \
18766 const duk_uint8_t *data;
18779 if (data[0] == 0xffU) {
18781 }
else if (data[0] == 0x82U) {
18783 }
else if (data[0] == 0x80U) {
18785 }
else if (data[len - 1] != 0xffU) {
18822#if defined(DUK_USE_FASTINT)
18825#if (DUK_INT_MAX <= 0x7fffffffL)
18872#if defined(DUK_USE_FASTINT)
18878#if (DUK_UINT_MAX <= 0xffffffffUL)
18893 }
else if (d < 0.0) {
19140#if defined(DUK_USE_VALSTACK_UNSAFE)
19157 if (uidx >= vs_size) {
19159#if defined(DUK_USE_ASSERTIONS)
19162 count = uidx - vs_size;
19163 while (
count != 0) {
19172#if defined(DUK_USE_REFERENCE_COUNTING)
19176 count = vs_size - uidx;
19179 tv_end = tv -
count;
19185 }
while (tv != tv_end);
19192 count = vs_size - uidx;
19194 tv_end = tv -
count;
19199 }
while (tv != tv_end);
19206#if defined(DUK_USE_PREFER_SIZE)
19228 if (uidx >= vs_size) {
19230#if defined(DUK_USE_ASSERTIONS)
19233 count = uidx - vs_size;
19234 while (
count != 0) {
19243#if defined(DUK_USE_REFERENCE_COUNTING)
19247 count = vs_size - uidx;
19250 tv_end = tv -
count;
19256 }
while (tv != tv_end);
19263 count = vs_size - uidx;
19265 tv_end = tv -
count;
19270 }
while (tv != tv_end);
19395#if defined(DUK_USE_FINALIZER_TORTURE)
19397 duk_hthread_valstack_torture_realloc(thr);
19404 new_alloc_size =
sizeof(
duk_tval) * new_size;
19411 DUK_D(
DUK_DPRINT(
"failed to resize valstack to %lu entries (%lu bytes)",
19412 (
unsigned long) new_size,
19413 (
unsigned long) new_alloc_size));
19421#if defined(DUK_USE_DEBUG)
19422 if (thr->
valstack != pre_valstack) {
19423 DUK_D(
DUK_DPRINT(
"valstack base pointer changed during valstack resize: %p -> %p",
19424 (
void *) pre_valstack,
19428 DUK_D(
DUK_DPRINT(
"valstack bottom pointer changed during valstack resize: %p -> %p",
19429 (
void *) pre_bottom,
19433 DUK_D(
DUK_DPRINT(
"valstack top pointer changed during valstack resize: %p -> %p",
19438 DUK_D(
DUK_DPRINT(
"valstack end pointer changed during valstack resize: %p -> %p",
19443 DUK_D(
DUK_DPRINT(
"valstack alloc_end pointer changed during valstack resize: %p -> %p",
19444 (
void *) pre_alloc_end,
19476 DUK_D(
DUK_DPRINT(
"resized valstack %lu -> %lu elements (%lu -> %lu bytes): "
19477 "base=%p -> %p, bottom=%p -> %p (%ld), top=%p -> %p (%ld), "
19478 "end=%p -> %p (%ld), alloc_end=%p -> %p (%ld);"
19479 " tv_prev_alloc_end=%p (-> %ld inits; <0 means shrink)",
19480 (
unsigned long) (pre_alloc_end - pre_valstack),
19481 (
unsigned long) new_size,
19482 (
unsigned long) ((duk_uint8_t *) pre_alloc_end - (duk_uint8_t *) pre_valstack),
19483 (
unsigned long) new_alloc_size,
19484 (
void *) pre_valstack,
19486 (
void *) pre_bottom,
19495 (
void *) pre_alloc_end,
19498 (
void *) tv_prev_alloc_end,
19502 p = tv_prev_alloc_end;
19503 while (p < thr->valstack_alloc_end) {
19510#if defined(DUK_USE_ASSERTIONS)
19512 while (p < thr->valstack_alloc_end) {
19526 min_size = min_bytes /
sizeof(
duk_tval);
19528#if defined(DUK_USE_VALSTACK_GROW_SHIFT)
19537 new_size = min_size;
19544 if (throw_on_error) {
19552 if (throw_on_error) {
19616#if defined(DUK_USE_VALSTACK_SHRINK_CHECK_SHIFT)
19618 shrink_bytes = reserve_bytes;
19628 if (alloc_bytes - reserve_bytes < proportion) {
19637#if defined(DUK_USE_VALSTACK_SHRINK_SLACK_SHIFT)
19643 shrink_bytes = reserve_bytes + slack /
sizeof(
duk_tval) *
sizeof(
duk_tval);
19648 shrink_bytes = reserve_bytes;
19651 DUK_D(
DUK_DPRINT(
"valstack shrink check: alloc_bytes=%ld, reserve_bytes=%ld, shrink_bytes=%ld (unvalidated)",
19652 (
long) alloc_bytes,
19653 (
long) reserve_bytes,
19654 (
long) shrink_bytes));
19656 if (shrink_bytes >= alloc_bytes) {
19664 DUK_D(
DUK_DPRINT(
"valstack shrink check: decided to shrink, snug: %ld", (
long) snug));
19805#if defined(DUK_USE_PREFER_SIZE)
19873 nbytes = (
duk_size_t) (((duk_uint8_t *) q) - ((duk_uint8_t *) p));
19879 (
unsigned long) nbytes));
19905 tv_end = tv +
count;
19906 while (tv != tv_end) {
19933 nbytes = (
duk_size_t) (((duk_uint8_t *) q) - ((duk_uint8_t *) p));
19939 (
unsigned long) nbytes));
19945 duk_memmove((
void *) p, (
const void *) (p + 1), (
size_t) nbytes);
19989#if defined(DUK_USE_REFERENCE_COUNTING)
20009#if defined(DUK_USE_REFERENCE_COUNTING)
20014 nbytes = (
duk_size_t) (((duk_uint8_t *) q) - ((duk_uint8_t *) p));
20015 duk_memmove((
void *) p, (
const void *) (p + 1), (
size_t) nbytes);
20020#if defined(DUK_USE_REFERENCE_COUNTING)
20038#if defined(DUK_USE_PREFER_SIZE)
20044 while (
count-- > 0) {
20060 tv_src = tv_dst +
count;
20064 for (tv = tv_dst; tv < tv_src; tv++) {
20068 duk_memmove((
void *) tv_dst, (
const void *) tv_src, bytes);
20127 src = (
void *) ((duk_uint8_t *) from_thr->
valstack_top - nbytes);
20152 q = (
duk_tval *) (
void *) (((duk_uint8_t *) p) - nbytes);
20183 tv_dst = (
duk_tval *) (
void *) ((duk_uint8_t *) tv_src + gap_bytes);
20290#if defined(DUK_USE_FASTINT)
20423 if (out_len != NULL) {
20471 const char *def_ptr,
20476 if (out_len != NULL) {
20477 *out_len = def_len;
20496 const char *def_ptr,
20513 if (out_len != NULL) {
20660 if (out_size != NULL) {
20681 if (out_size != NULL) {
20697 if (out_size != NULL) {
20698 *out_size = def_size;
20737 if (out_isbuffer != NULL) {
20740 if (out_size != NULL) {
20741 *out_size = def_size;
20750 if (out_size != NULL) {
20753 if (out_isbuffer != NULL) {
20758#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
20773 if (out_size != NULL) {
20776 if (out_isbuffer != NULL) {
20779 return (
void *) (p + h_bufobj->
offset);
20811 if (out_size != NULL) {
20812 *out_size = def_size;
21123 return (
void *) NULL;
21185 if (val_mask & type_mask) {
21277#if defined(DUK_USE_PREFER_SIZE)
21326#if defined(DUK_USE_FASTINT)
21493#if defined(DUK_USE_SYMBOL_BUILTIN)
21536#if defined(DUK_USE_SYMBOL_BUILTIN)
21608#if defined(DUK_USE_PREFER_SIZE)
21653#if defined(DUK_USE_FASTINT)
21662 d = coerce_func(thr, tv);
21738#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
21755 }
else if (d >= 255) {
21765 ret = (duk_uint8_t) d;
21766 ret = (ret + 1) & 0xfe;
21771 ret = (duk_uint8_t) (d + 0.5);
21899#if defined(DUK_USE_DEBUGGER_SUPPORT)
21964#if defined(DUK_USE_SYMBOL_BUILTIN)
21969 if (!avoid_side_effects) {
22015 }
else if (d > dmax) {
22029#if defined(DUK_USE_FASTINT)
22030#if (DUK_INT_MAX <= 0x7fffffffL)
22046 *out_clamped = clamped;
22149#if defined(DUK_USE_FASTINT)
22223 const duk_uint8_t *src_data;
22225 duk_uint8_t *dst_data;
22232 if (h_buf != NULL) {
22239 duk_uint8_t *tmp_ptr;
22242 src_data = (
const duk_uint8_t *) tmp_ptr;
22250 dst_data = tmp_ptr;
22259 src_data = (
const duk_uint8_t *)
duk_to_lstring(thr, idx, &src_size);
22264 duk_memcpy_unsafe((
void *) dst_data, (
const void *) src_data, (
size_t) src_size);
22270 *out_size = src_size;
22309#if defined(DUK_USE_FASTINT)
22348#if defined(DUK_USE_FUNC_NAME_PROPERTY)
22369#if !defined(DUK_USE_BUFFEROBJECT_SUPPORT)
22382 goto create_object;
22397 goto create_object;
22403#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
22417 goto replace_value;
22424 goto create_object;
22441 goto replace_value;
22443#if defined(DUK_USE_FASTINT)
22452 goto create_object;
22513#if defined(DUK_USE_PACKED_TVAL)
22533#if defined(DUK_USE_FASTINT)
22560#if defined(DUK_USE_VERBOSE_ERRORS) && defined(DUK_USE_PARANOID_ERRORS)
22561DUK_LOCAL const char *
const duk__type_names[] = {
"none",
"undefined",
"null",
"boolean",
"number",
22562 "string",
"object",
"buffer",
"pointer",
"lightfunc" };
22573 return duk__type_names[type_tag];
22612#if defined(DUK_USE_PACKED_TVAL)
22632#if defined(DUK_USE_FASTINT)
22745#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
22974 }
while (--sanity > 0);
23059#if defined(DUK_USE_FASTINT)
23065#if DUK_INT_MAX <= 0x7fffffffL
23088#if defined(DUK_USE_FASTINT)
23094#if DUK_UINT_MAX <= 0xffffffffUL
23174#if !defined(DUK_USE_PREFER_SIZE)
23175#if defined(DUK_USE_LITCACHE_SIZE)
23240 if (check_object_coercible) {
23464 if (sz <=
sizeof(stack_buf)) {
23466 }
else if (!pushed_buf) {
23536 if (prototype_bidx >= 0) {
23667#if defined(DUK_USE_ROM_STRINGS)
23670#if defined(DUK_USE_HEAPPTR16)
23671 obj->strs16 = thr->strs16;
23776 duk_int16_t func_nargs;
23786 func_nargs = (duk_int16_t) nargs;
23797 obj->
nargs = func_nargs;
23801 (
long) obj->
nargs));
23894#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
23924#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
23925#define DUK__PACK_ARGS(classnum, protobidx, elemtype, elemshift, istypedarray) \
23926 (((classnum) << 24) | ((protobidx) << 16) | ((elemtype) << 8) | ((elemshift) << 4) | (istypedarray))
23993#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
24006 duk_uint_t uint_offset, uint_length, uint_added;
24027 classnum = tmp >> 24;
24028 protobidx = (tmp >> 16) & 0xff;
24031 if (h_arraybuf != NULL &&
24042 tmp_offset = uint_offset + ((
duk_hbufobj *) h_arraybuf)->offset;
24046 uint_offset = tmp_offset;
24061 uint_added = uint_offset + uint_length;
24065 DUK_ASSERT(uint_added >= uint_offset && uint_added >= uint_length);
24074 h_bufobj->
buf = h_val;
24078 h_bufobj->
offset = uint_offset;
24079 h_bufobj->
length = uint_length;
24080 h_bufobj->
shift = (tmp >> 4) & 0x0f;
24081 h_bufobj->
elem_type = (tmp >> 8) & 0xff;
24119 const char *filename,
24124#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
24134#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
24140 err_code = err_code & (~DUK_ERRCODE_FLAG_NOBLAME_FILELINE);
24167#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
24188#if !defined(DUK_USE_VARIADIC_MACROS)
24232 return (
void *) buf_data;
24247#if !defined(DUK_USE_ZERO_BUFFER_DATA)
24256#if defined(DUK_USE_ES6_PROXY)
24324 h_proxy->
target = h_target;
24326 h_proxy->
handler = h_handler;
24356#if defined(DUK_USE_ASSERTIONS)
24380#if defined(DUK_USE_FINALIZER_SUPPORT)
24406#if defined(DUK_USE_REFERENCE_COUNTING)
24422 for (i = 0; i < heap->
st_size; i++) {
24423#if defined(DUK_USE_STRTAB_PTRCOMP)
24424 str = DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, heap->strtable16[i]);
24428 while (str != NULL) {
24463#if defined(DUK_USE_ASSERTIONS)
24464 duk__validate_push_heapptr(thr, ptr);
24499 DUK_D(
DUK_DPRINT(
"duk_push_heapptr() with a pointer on finalize_list, autorescue"));
24513#if defined(DUK_USE_REFERENCE_COUNTING)
24607#if defined(DUK_USE_REFERENCE_COUNTING)
24615#if defined(DUK_USE_REFERENCE_COUNTING)
24617 tv_end = tv -
count;
24618 while (tv != tv_end) {
24652#if defined(DUK_USE_PREFER_SIZE)
24665#if defined(DUK_USE_REFERENCE_COUNTING)
24675 while (
count > 0) {
24695#if defined(DUK_USE_PREFER_SIZE)
24719#if defined(DUK_USE_REFERENCE_COUNTING)
24758#if defined(DUK_USE_PREFER_SIZE)
24777#if defined(DUK_USE_PREFER_SIZE)
24801#if defined(DUK_USE_REFERENCE_COUNTING)
24808#if defined(DUK_USE_REFERENCE_COUNTING)
24911 tv_curr = tv_dst + 1;
24913 while (tv_curr != tv_limit) {
24936#if defined(DUK_USE_ARRAY_FASTPATH)
24970 while (len-- > 0) {
25007 for (i = 0; i < len; i++) {
25027#if defined(DUK_USE_GCC_PRAGMAS)
25028#pragma GCC diagnostic push
25029#pragma GCC diagnostic ignored "-Wsuggest-attribute=noreturn"
25030#elif defined(DUK_USE_CLANG_PRAGMAS)
25031#pragma clang diagnostic push
25058#if defined(DUK_USE_AUGMENT_ERROR_THROW)
25066#if defined(DUK_USE_DEBUGGER_SUPPORT)
25067 duk_err_check_debugger_integration(thr);
25085 DUK_D(
DUK_DPRINT(
"fatal error occurred: %s", err_msg ? err_msg :
"NULL"));
25097 DUK_D(
DUK_DPRINT(
"fatal error handler returned, all bets are off!"));
25105 const char *filename,
25118 const char *filename,
25133#if defined(DUK_USE_GCC_PRAGMAS)
25134#pragma GCC diagnostic pop
25135#elif defined(DUK_USE_CLANG_PRAGMAS)
25136#pragma clang diagnostic pop
25139#if !defined(DUK_USE_VARIADIC_MACROS)
25144 const char *filename;
25159#define DUK__ERROR_STASH_SHARED(code) \
25162 va_start(ap, fmt); \
25163 duk__throw_error_from_stash(thr, (code), fmt, ap); \
25165 DUK_WO_NORETURN(return 0;); \
25213 if ((tv1 == NULL) || (tv2 == NULL)) {
25230 if ((tv1 == NULL) || (tv2 == NULL)) {
25245 if ((tv1 == NULL) || (tv2 == NULL)) {
25334 duk_uint8_t buf[32 * 2];
25335 duk_uint8_t *p, *q;
25343#if defined(DUK_USE_INTEGER_LE)
25348 for (i = 0; i < sz; i++) {
25349#if defined(DUK_USE_INTEGER_LE)
25369#define DUK__READABLE_SUMMARY_MAXCHARS 96
25370#define DUK__READABLE_STRING_MAXCHARS 32
25371#define DUK__READABLE_ERRMSG_MAXCHARS 96
25379 const duk_uint8_t *p, *p_start, *p_end;
25400 if (nchars == maxchars) {
25528 const duk_uint8_t *p;
25529 const duk_uint8_t *p_end;
25530 const duk_uint8_t *q;
25538 DUK_ASSERT(p[0] == 0xff || (p[0] & 0xc0) == 0x80);
25540 for (q = p; q < p_end; q++) {
25571 (
unsigned int) (duk_uint16_t) h->
nargs,
25572 (
unsigned int) (duk_uint16_t) h->
magic);
25591 while (
count-- > 0) {
25598#undef DUK__ASSERT_SPACE
25599#undef DUK__CHECK_SPACE
25600#undef DUK__ERROR_STASH_SHARED
25601#undef DUK__PACK_ARGS
25602#undef DUK__READABLE_ERRMSG_MAXCHARS
25603#undef DUK__READABLE_STRING_MAXCHARS
25604#undef DUK__READABLE_SUMMARY_MAXCHARS
25622 if (count_in < 0) {
25643 goto error_overflow;
25650 for (i =
count; i >= 1; i--) {
25658 if (new_len < len ||
25660 goto error_overflow;
25665 DUK_DDD(
DUK_DDDPRINT(
"join/concat %lu strings, total length %lu bytes", (
unsigned long)
count, (
unsigned long) len));
25676 for (i =
count; i >= 1; i--) {
25677 if (is_join && i !=
count) {
25719#if defined(DUK_USE_PREFER_SIZE)
25743 goto error_overflow;
25776 const duk_uint8_t *p, *p_start, *p_end;
25793 callback(udata, cp);
25801 const duk_uint8_t *p, *p_start, *p_end;
25827 cp = callback(udata, cp);
25851 if (end_offset >= charlen) {
25852 end_offset = charlen;
25854 if (start_offset > end_offset) {
25855 start_offset = end_offset;
25870 DUK_ASSERT(end_byte_offset >= start_byte_offset);
25876 (duk_uint32_t) (end_byte_offset - start_byte_offset));
25887 const duk_uint8_t *p, *p_start, *p_end, *p_tmp1, *p_tmp2;
25888 const duk_uint8_t *q_start, *q_end;
25901 while (p < p_end) {
25917 while (p > p_start) {
25919 while (p > p_start) {
25921 if (((*p) & 0xc0) != 0x80) {
25939 if (q_end < q_start) {
25943 DUK_ASSERT(q_start >= p_start && q_start <= p_end);
25944 DUK_ASSERT(q_end >= p_start && q_end <= p_end);
25948 (
const void *) p_start,
25949 (
const void *) p_end,
25950 (
const void *) q_start,
25951 (
const void *) q_end));
25953 if (q_start == p_start && q_end == p_end) {
26008#if defined(DUK_USE_GET_MONOTONIC_TIME)
26009 return (
duk_double_t) DUK_USE_GET_MONOTONIC_TIME(thr);
26139#define DUK__ARRAY_MID_JOIN_LIMIT 4096
26141#if defined(DUK_USE_ARRAY_BUILTIN)
26178#if defined(DUK_USE_ARRAY_FASTPATH)
26188 duk_uint_t flags_mask, flags_bits, flags_value;
26205 if ((flags_value & flags_mask) != flags_bits) {
26240 duk_uint32_t len_prealloc;
26255 len_prealloc = len < 64 ? len : 64;
26297 DUK_DDD(
DUK_DDDPRINT(
"this.join is not callable, fall back to (original) Object.toString"));
26321 duk_uint32_t j, idx, len;
26349 for (i = 0; i < n; i++) {
26362#if defined(DUK_USE_SYMBOL_BUILTIN)
26395 len = (duk_uint32_t) tmp_len;
26405 for (j = 0; j < len; j++) {
26409 if (need_has_check) {
26456 duk_uint32_t len,
count;
26480 (
unsigned long) len));
26513 if (to_locale_string) {
26535#if defined(DUK_USE_ARRAY_FASTPATH)
26556 tv_val = tv_arraypart + len;
26579#if defined(DUK_USE_ARRAY_FASTPATH)
26585#if defined(DUK_USE_ARRAY_FASTPATH)
26609#if defined(DUK_USE_ARRAY_FASTPATH)
26624 DUK_D(
DUK_DPRINT(
"Array.prototype.push() would go beyond 32-bit length, throw"));
26637 tv_dst = tv_arraypart + len;
26638 for (i = 0; i < n; i++) {
26648 len += (duk_uint32_t) n;
26649 h_arr->length = len;
26666#if defined(DUK_USE_ARRAY_FASTPATH)
26670#if defined(DUK_USE_ARRAY_FASTPATH)
26697 if (len + (duk_uint32_t) n < len) {
26698 DUK_D(
DUK_DPRINT(
"Array.prototype.push() would go beyond 32-bit length, throw"));
26702 for (i = 0; i < n; i++) {
26706 len += (duk_uint32_t) n;
26749 if (idx1 == idx2) {
26750 DUK_DDD(
DUK_DDDPRINT(
"duk__array_sort_compare: idx1=%ld, idx2=%ld -> indices identical, quick exit",
26759 DUK_DDD(
DUK_DDDPRINT(
"duk__array_sort_compare: idx1=%ld, idx2=%ld, have1=%ld, have2=%ld, val1=%!T, val2=%!T",
26819 }
else if (d > 0.0) {
26878#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
26889 for (i = 0; i < n; i++) {
26892 }
else if (i == lo) {
26894 }
else if (i == hi) {
26896 }
else if (i >= lo && i <= hi) {
26905 DUK_DDD(
DUK_DDDPRINT(
"%s (lo=%ld, hi=%ld, pivot=%ld)", (
const char *) buf, (
long) lo, (
long) hi, (
long) pivot));
26934 DUK_DDD(
DUK_DDDPRINT(
"lo=%ld, hi=%ld, chose pivot p=%ld", (
long) lo, (
long) hi, (
long) p));
26993#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
26994 duk__debuglog_qsort_state(thr, lo, hi, r);
27040 duk_uint32_t len_u32;
27067 if (act_start < 0) {
27068 act_start = len + act_start;
27070 DUK_ASSERT(act_start >= 0 && act_start <= len);
27072#if defined(DUK_USE_NONSTD_ARRAY_SPLICE_DELCOUNT)
27073 if (have_delcount) {
27076#if defined(DUK_USE_NONSTD_ARRAY_SPLICE_DELCOUNT)
27083 del_count = len - act_start;
27090 DUK_ASSERT(del_count >= 0 && del_count <= len - act_start);
27095 DUK_D(
DUK_DPRINT(
"Array.prototype.splice() would go beyond 32-bit length, throw"));
27113 for (i = 0; i < del_count; i++) {
27125 if (item_count < del_count) {
27134 n = len - del_count;
27135 for (i = act_start; i < n; i++) {
27147 n = len - del_count + item_count;
27148 for (i = len - 1; i >= n; i--) {
27153 }
else if (item_count > del_count) {
27163 for (i = len - del_count - 1; i >= act_start; i--) {
27184 for (i = 0; i < item_count; i++) {
27207 duk_uint32_t middle;
27208 duk_uint32_t lower, upper;
27218 for (lower = 0; lower < middle; lower++) {
27223 upper = len - lower - 1;
27257 duk_uint32_t len_u32;
27262 duk_uint32_t res_length = 0;
27282 start = len + start;
27299 for (i = start; i < end; i++) {
27303 res_length = idx + 1;
27340 for (i = 1; i < len; i++) {
27384 if (len + (duk_uint32_t) nargs < len) {
27385 DUK_D(
DUK_DPRINT(
"Array.prototype.unshift() would go beyond 32-bit length, throw"));
27414 for (i = 0; i < (duk_uint32_t) nargs; i++) {
27474 from_idx =
duk_to_int_clamped(thr, 1, (idx_step > 0 ? -len : -len - 1), (idx_step > 0 ? len : len - 1));
27475 if (from_idx < 0) {
27477 from_idx = len + from_idx;
27483 if (idx_step > 0) {
27486 from_idx = len - 1;
27496 for (i = from_idx; i >= 0 && i < len; i += idx_step) {
27519#define DUK__ITER_EVERY 0
27520#define DUK__ITER_SOME 1
27521#define DUK__ITER_FOREACH 2
27522#define DUK__ITER_MAP 3
27523#define DUK__ITER_FILTER 4
27536 duk_uint32_t res_length = 0;
27559 for (i = 0; i < len; i++) {
27567 res_length = i + 1;
27585 switch (iter_type) {
27606 res_length = i + 1;
27626 switch (iter_type) {
27658 duk_uint32_t i, len;
27691 for (i = (idx_step >= 0 ? 0 : len - 1); i < len;
27692 i += (duk_uint32_t) idx_step) {
27718 DUK_DDD(
DUK_DDDPRINT(
"calling reduce function: func=%!T, prev=%!T, curr=%!T, idx=%!T, obj=%!T",
27742#undef DUK__ARRAY_MID_JOIN_LIMIT
27743#undef DUK__ITER_EVERY
27744#undef DUK__ITER_FILTER
27745#undef DUK__ITER_FOREACH
27746#undef DUK__ITER_MAP
27747#undef DUK__ITER_SOME
27754#if defined(DUK_USE_BOOLEAN_BUILTIN)
27790 if (coerce_tostring) {
27827#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
27872#if !defined(DUK_USE_PREFER_SIZE)
27922#define DUK__BUFOBJ_FLAG_THROW (1 << 0)
27923#define DUK__BUFOBJ_FLAG_PROMOTE (1 << 1)
28019 h_bufobj->
buf = h_val;
28042 offset_signed =
duk_to_int(thr, idx_offset);
28043 if (offset_signed < 0) {
28047 if (offset > h_bufarg->
length) {
28055 length = h_bufarg->
length - offset;
28057 length_signed =
duk_to_int(thr, idx_length);
28058 if (length_signed < 0) {
28063 if (length > h_bufarg->
length - offset) {
28070 length = h_bufarg->
length - offset;
28075 DUK_ASSERT(offset + length <= h_bufarg->length);
28077 *out_offset = offset;
28078 *out_length = length;
28104 end_offset = buffer_length;
28115 *out_start_offset = start_offset;
28116 *out_end_offset = end_offset;
28128 duk_uint8_t buffer_shift,
28139 buffer_length >>= buffer_shift;
28147 if (start_offset < 0) {
28148 start_offset = buffer_length + start_offset;
28151 end_offset = buffer_length;
28154 if (end_offset < 0) {
28155 end_offset = buffer_length + end_offset;
28160 if (start_offset < 0) {
28162 }
else if (start_offset > buffer_length) {
28163 start_offset = buffer_length;
28165 if (end_offset < start_offset) {
28166 end_offset = start_offset;
28167 }
else if (end_offset > buffer_length) {
28168 end_offset = buffer_length;
28177 start_offset <<= buffer_shift;
28178 end_offset <<= buffer_shift;
28180 *out_start_offset = start_offset;
28181 *out_end_offset = end_offset;
28238 duk_memcpy((
void *) du.
uc, (
const void *) p, (
size_t) elem_size);
28320 duk_memcpy((
void *) p, (
const void *) du.
uc, (
size_t) elem_size);
28366 return h_bufobj->
buf;
28393 for (i = 0; i < len; i++) {
28411#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
28432#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
28472#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
28503 shift = magic & 0x03U;
28504 elem_type = (magic >> 2) & 0x0fU;
28505 elem_size = 1U << shift;
28506 align_mask = elem_size - 1;
28513 DUK_DD(
DUK_DDPRINT(
"typedarray constructor, magic=%d, shift=%d, elem_type=%d, "
28514 "elem_size=%d, proto_bidx=%d, class_num=%d",
28550 if (byte_offset_signed < 0) {
28551 goto fail_arguments;
28553 byte_offset = (
duk_uint_t) byte_offset_signed;
28554 if (byte_offset > h_bufarg->
length || (byte_offset & align_mask) != 0) {
28556 goto fail_arguments;
28560 byte_length = h_bufarg->
length - byte_offset;
28561 if ((byte_length & align_mask) != 0) {
28565 goto fail_arguments;
28567 elem_length = (byte_length >> shift);
28570 if (elem_length_signed < 0) {
28571 goto fail_arguments;
28573 elem_length = (
duk_uint_t) elem_length_signed;
28574 byte_length = elem_length << shift;
28575 if ((byte_length >> shift) != elem_length) {
28578 goto fail_arguments;
28581 if (byte_length > h_bufarg->
length - byte_offset) {
28583 goto fail_arguments;
28588 DUK_ASSERT(byte_offset <= h_bufarg->length);
28590 DUK_ASSERT(byte_offset + byte_length <= h_bufarg->length);
28591 DUK_ASSERT((elem_length << shift) == byte_length);
28597 h_val = h_bufarg->
buf;
28598 if (h_val == NULL) {
28601 h_bufobj->
buf = h_val;
28604 h_bufobj->
length = byte_length;
28605 h_bufobj->
shift = (duk_uint8_t) shift;
28606 h_bufobj->
elem_type = (duk_uint8_t) elem_type;
28625 if (h_bufarg->
buf == NULL) {
28635 "src byte_length=%ld, src shift=%d, "
28636 "src/dst elem_length=%ld; "
28637 "dst shift=%d -> dst byte_length=%ld",
28638 (
long) h_bufarg->
length,
28639 (
int) h_bufarg->
shift,
28640 (
long) elem_length_signed,
28642 (
long) (elem_length_signed << shift)));
28645#if !defined(DUK_USE_PREFER_SIZE)
28674 if (elem_length_signed < 0) {
28675 goto fail_arguments;
28677 elem_length = (
duk_uint_t) elem_length_signed;
28678 byte_length = (
duk_uint_t) (elem_length << shift);
28679 if ((byte_length >> shift) != elem_length) {
28682 goto fail_arguments;
28685 DUK_DDD(
DUK_DDDPRINT(
"elem_length=%ld, byte_length=%ld", (
long) elem_length, (
long) byte_length));
28705 h_bufobj->
buf = h_val;
28708 h_bufobj->
length = byte_length;
28709 h_bufobj->
shift = (duk_uint8_t) shift;
28710 h_bufobj->
elem_type = (duk_uint8_t) elem_type;
28721 switch (copy_mode) {
28725#if !defined(DUK_USE_PREFER_SIZE)
28729 duk_uint8_t *p_src;
28730 duk_uint8_t *p_dst;
28745 (
long) byte_length));
28755 duk_uint8_t *p_src;
28756 duk_uint8_t *p_src_end;
28757 duk_uint8_t *p_dst;
28767 dst_elem_size = elem_size;
28771 p_src_end = p_src + h_bufarg->
length;
28774 "src_elem_size=%d, dst_elem_size=%d",
28776 (
void *) p_src_end,
28778 (
int) src_elem_size,
28779 (
int) dst_elem_size));
28781 while (p_src != p_src_end) {
28783 "p_src=%p, p_src_end=%p, p_dst=%p",
28785 (
void *) p_src_end,
28793 p_src += src_elem_size;
28794 p_dst += dst_elem_size;
28807 for (i = 0; i < elem_length; i++) {
28846 if (elem_length_signed < 0) {
28847 goto fail_arguments;
28860#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
28878 DUK_ASSERT(offset + length <= h_bufarg->length);
28885 h_val = h_bufarg->buf;
28886 if (h_val == NULL) {
28889 h_bufobj->
buf = h_val;
28891 h_bufobj->
offset = h_bufarg->offset + offset;
28892 h_bufobj->
length = length;
28911#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
28937#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
28948#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
28952#if !defined(DUK_USE_PREFER_SIZE)
28964 if (h_bufobj->
buf == NULL) {
28977#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
28981 duk_uint8_t *buf_slice;
28985 if (h_this == NULL) {
29001 slice_length = (
duk_size_t) (end_offset - start_offset);
29019 (
size_t) slice_length);
29035#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29064 for (i = 0, n = h_this->
length; i < n; i++) {
29079#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29089 if (magic & 0x02U) {
29116 if (magic & 0x01U) {
29132#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29135 const duk_uint8_t *fill_str_ptr;
29137 duk_uint8_t fill_value;
29145 if (h_this->
buf == NULL) {
29152 fill_str_ptr = (
const duk_uint8_t *)
duk_get_lstring(thr, 0, &fill_str_len);
29157 fill_str_ptr = (
const duk_uint8_t *) &fill_value;
29170 DUK_DDD(
DUK_DDDPRINT(
"fill: fill_value=%02x, fill_offset=%ld, fill_end=%ld, view length=%ld",
29171 (
unsigned int) fill_value,
29172 (
long) fill_offset,
29174 (
long) h_this->
length));
29180 fill_length = (
duk_size_t) (fill_end - fill_offset);
29181 if (fill_str_len == 1) {
29186 }
else if (fill_str_len > 1) {
29189 for (i = 0, n = (
duk_size_t) (fill_end - fill_offset), t = 0; i < n; i++) {
29190 p[i] = fill_str_ptr[t++];
29191 if (t >= fill_str_len) {
29209#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29214 const duk_uint8_t *str_data;
29226 DUK_ASSERT(offset + length <= h_this->length);
29230 if (length > str_len) {
29237 (
const void *) str_data,
29252#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29258 duk_int_t target_start, source_start, source_end;
29259 duk_uint_t target_ustart, source_ustart, source_uend;
29274 source_end = source_length;
29280 "source_start=%ld, source_end=%ld, source_length=%ld",
29281 (
long) target_start,
29282 (
long) h_bufarg->
length,
29283 (
long) source_start,
29285 (
long) source_length));
29289 if (source_start < 0 || source_end < 0 || target_start < 0) {
29296 if (source_ustart >= source_uend ||
29297 source_ustart >= (
duk_uint_t) source_length ||
29298 target_ustart >= (
duk_uint_t) target_length) {
29299 goto silent_ignore;
29301 if (source_uend >= (
duk_uint_t) source_length) {
29305 copy_size = source_uend - source_ustart;
29306 if (target_ustart + copy_size > (
duk_uint_t) target_length) {
29314 DUK_ASSERT(target_ustart + copy_size >= target_ustart);
29315 DUK_ASSERT(target_ustart + copy_size >= copy_size);
29316 copy_size = (
duk_uint_t) target_length - target_ustart;
29320 (
unsigned long) target_ustart,
29321 (
unsigned long) source_ustart,
29322 (
unsigned long) copy_size));
29340 (
size_t) copy_size);
29394#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29407 if (h_this->
buf == NULL) {
29420 if (offset_signed < 0) {
29425 offset_bytes = offset_elems << h_this->
shift;
29426 if ((offset_bytes >> h_this->
shift) != offset_elems) {
29431 if (offset_bytes > h_this->
length) {
29444#if !defined(DUK_USE_PREFER_SIZE)
29445 duk_uint16_t comp_mask;
29451 duk_uint8_t *p_src_base;
29452 duk_uint8_t *p_src_end;
29453 duk_uint8_t *p_src;
29454 duk_uint8_t *p_dst_base;
29455 duk_uint8_t *p_dst;
29462 if (h_bufarg->
buf == NULL) {
29468 src_length = h_bufarg->
length;
29469 dst_length_elems = (src_length >> h_bufarg->
shift);
29470 dst_length = dst_length_elems << h_this->
shift;
29471 if ((dst_length >> h_this->
shift) != dst_length_elems) {
29476 DUK_DDD(
DUK_DDDPRINT(
"nominal size check: src_length=%ld, dst_length=%ld", (
long) src_length, (
long) dst_length));
29478 if (dst_length > h_this->
length - offset_bytes) {
29502 DUK_DDD(
DUK_DDDPRINT(
"source and/or target not covered by underlying buffer, skip copy"));
29517#if !defined(DUK_USE_PREFER_SIZE)
29520 if (comp_mask & (1 << h_bufarg->
elem_type)) {
29524 duk_memmove_unsafe((
void *) p_dst_base, (
const void *) p_src_base, (
size_t) dst_length);
29527 DUK_DDD(
DUK_DDDPRINT(
"fast path: views are not compatible with a byte copy, copy by item"));
29547 "p_dst_base=%p, dst_length=%ld",
29548 (
void *) p_src_base,
29550 (
void *) p_dst_base,
29551 (
long) dst_length));
29553 if (p_src_base >= p_dst_base + dst_length ||
29554 p_src_base + src_length <= p_dst_base) {
29564 duk_uint8_t *p_src_copy;
29569 duk_memcpy_unsafe((
void *) p_src_copy, (
const void *) p_src_base, (
size_t) src_length);
29571 p_src_base = p_src_copy;
29576 "p_dst_base=%p, dst_length=%ld, valstack top=%ld",
29577 (
void *) p_src_base,
29579 (
void *) p_dst_base,
29593 p_src = p_src_base;
29594 p_dst = p_dst_base;
29595 p_src_end = p_src_base + src_length;
29597 while (p_src != p_src_end) {
29599 "p_src=%p, p_src_end=%p, p_dst=%p",
29601 (
void *) p_src_end,
29609 p_src += src_elem_size;
29610 p_dst += dst_elem_size;
29626 if ((n << h_this->
shift) > h_this->
length - offset_bytes) {
29644 for (i = 0; i < n; i++) {
29677#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29681 duk_uint8_t *p_copy;
29694 slice_length = (
duk_uint_t) (end_offset - start_offset);
29698 copy_length = slice_length;
29706#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29733 if (magic & 0x02) {
29746 DUK_DDD(
DUK_DDDPRINT(
"slice() doesn't handle view into plain buffer, coerce 'this' to ArrayBuffer object"));
29765 (duk_uint8_t) h_this->
shift,
29773 slice_length = (
duk_uint_t) (end_offset - start_offset);
29791 if (magic & 0x04) {
29806 h_val = h_this->
buf;
29807 if (h_val == NULL) {
29811 if (magic & 0x02) {
29813 duk_uint8_t *p_copy;
29831 h_bufobj->
buf = h_val;
29833 h_bufobj->
length = slice_length;
29838 h_bufobj->
buf = h_val;
29840 h_bufobj->
length = slice_length;
29863#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29865 const char *encoding;
29880#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29907#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29938#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
29959 for (i = 0; i < n; i++) {
29967 total_length += h_bufobj->
length;
29988 if (total_length_signed < 0) {
29991 total_length = (
duk_uint_t) total_length_signed;
30005 for (i = 0; i < n; i++) {
30012 copy_size = h_bufobj->
length;
30013 if (copy_size > space_left) {
30014 copy_size = space_left;
30024 space_left -= copy_size;
30048#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
30055#define DUK__FLD_8BIT 0
30056#define DUK__FLD_16BIT 1
30057#define DUK__FLD_32BIT 2
30058#define DUK__FLD_FLOAT 3
30059#define DUK__FLD_DOUBLE 4
30060#define DUK__FLD_VARINT 5
30061#define DUK__FLD_BIGENDIAN (1 << 3)
30062#define DUK__FLD_SIGNED (1 << 4)
30063#define DUK__FLD_TYPEDARRAY (1 << 5)
30082 magic_ftype = magic & 0x0007U;
30083 magic_bigendian = magic & 0x0008U;
30084 magic_signed = magic & 0x0010U;
30085 magic_typedarray = magic & 0x0020U;
30089 buffer_length = h_this->
length;
30096 if (magic_typedarray) {
30098#if defined(DUK_USE_INTEGER_LE)
30105#if defined(DUK_USE_INTEGER_LE)
30106 endswap = magic_bigendian;
30108 endswap = !magic_bigendian;
30118 if (offset_signed < 0) {
30123 "magic=%04x, magic_fieldtype=%d, magic_bigendian=%d, magic_signed=%d, "
30125 (
long) buffer_length,
30128 (
unsigned int) magic,
30130 (
int) (magic_bigendian >> 3),
30131 (
int) (magic_signed >> 4),
30139 DUK_DDD(
DUK_DDDPRINT(
"buffer_length=%ld, check_length=%ld", (
long) buffer_length, (
long) check_length));
30149 goto fail_neutered;
30153 switch (magic_ftype) {
30156 if (offset + 1U > check_length) {
30160 if (magic_signed) {
30169 if (offset + 2U > check_length) {
30172 duk_memcpy((
void *) du.
uc, (
const void *) (buf + offset), 2);
30177 if (magic_signed) {
30186 if (offset + 4U > check_length) {
30189 duk_memcpy((
void *) du.
uc, (
const void *) (buf + offset), 4);
30194 if (magic_signed) {
30203 if (offset + 4U > check_length) {
30206 duk_memcpy((
void *) du.
uc, (
const void *) (buf + offset), 4);
30216 if (offset + 8U > check_length) {
30219 duk_memcpy((
void *) du.
uc, (
const void *) (buf + offset), 8);
30232#if defined(DUK_USE_64BIT_OPS)
30239 const duk_uint8_t *p;
30242 if (field_bytelen < 1 || field_bytelen > 6) {
30243 goto fail_field_length;
30245 if (offset + (
duk_uint_t) field_bytelen > check_length) {
30248 p = (
const duk_uint8_t *) (buf + offset);
30255 if (magic_bigendian) {
30259 i_end = field_bytelen;
30262 i = field_bytelen - 1;
30267#if defined(DUK_USE_64BIT_OPS)
30271 tmp = (tmp << 8) + (duk_int64_t) p[i];
30273 }
while (i != i_end);
30275 if (magic_signed) {
30281 tmp = (duk_int64_t) ((duk_uint64_t) tmp << shift_tmp) >> shift_tmp;
30287 if (magic_signed && (highbyte & 0x80) != 0) {
30327#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
30346 magic_ftype = magic & 0x0007U;
30347 magic_bigendian = magic & 0x0008U;
30348 magic_signed = magic & 0x0010U;
30349 magic_typedarray = magic & 0x0020U;
30354 buffer_length = h_this->
length;
30361 if (magic_typedarray) {
30363#if defined(DUK_USE_INTEGER_LE)
30371#if defined(DUK_USE_INTEGER_LE)
30372 endswap = magic_bigendian;
30374 endswap = !magic_bigendian;
30393 if (nbytes < 1 || nbytes > 6) {
30394 goto fail_field_length;
30400 if (offset_signed < 0) {
30404 DUK_DDD(
DUK_DDDPRINT(
"writefield, value=%!T, buffer_length=%ld, offset=%ld, no_assert=%d, "
30405 "magic=%04x, magic_fieldtype=%d, magic_bigendian=%d, magic_signed=%d, "
30408 (
long) buffer_length,
30411 (
unsigned int) magic,
30413 (
int) (magic_bigendian >> 3),
30414 (
int) (magic_signed >> 4),
30428 DUK_DDD(
DUK_DDDPRINT(
"buffer_length=%ld, check_length=%ld", (
long) buffer_length, (
long) check_length));
30438 goto fail_neutered;
30442 switch (magic_ftype) {
30444 if (offset + 1U > check_length) {
30453 if (offset + 2U > check_length) {
30462 duk_memcpy((
void *) (buf + offset), (
const void *) du.
uc, 2);
30467 if (offset + 4U > check_length) {
30476 duk_memcpy((
void *) (buf + offset), (
const void *) du.
uc, 4);
30481 if (offset + 4U > check_length) {
30491 duk_memcpy((
void *) (buf + offset), (
const void *) du.
uc, 4);
30495 if (offset + 8U > check_length) {
30503 duk_memcpy((
void *) (buf + offset), (
const void *) du.
uc, 8);
30512#if defined(DUK_USE_64BIT_OPS)
30520 if (offset + (
duk_uint_t) field_bytelen > check_length) {
30529 if (magic_bigendian) {
30538 i_end = field_bytelen - 1;
30547#if defined(DUK_USE_64BIT_OPS)
30549 p = (duk_uint8_t *) (buf + offset);
30553 p[i] = (duk_uint8_t) (tmp & 0xff);
30555 }
while (i != i_end);
30558 p = (duk_uint8_t *) (buf + offset);
30563 p[i] = (duk_uint8_t) (
DUK_FMOD(tmp, 256.0));
30565 }
while (i != i_end);
30577 if (magic_typedarray) {
30596 if (magic_typedarray) {
30610#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
30637 if (h_bufobj->buf_prop == NULL &&
30639 h_bufobj->buf != NULL) {
30645 if (h_bufobj->buf_prop == NULL) {
30656 DUK_ASSERT(h_bufobj->offset + h_bufobj->length >= h_bufobj->offset);
30657 h_arrbuf->
length = h_bufobj->offset + h_bufobj->length;
30667 if (h_bufobj->buf_prop) {
30735#undef DUK__BUFOBJ_FLAG_PROMOTE
30736#undef DUK__BUFOBJ_FLAG_THROW
30737#undef DUK__FLD_16BIT
30738#undef DUK__FLD_32BIT
30739#undef DUK__FLD_8BIT
30740#undef DUK__FLD_BIGENDIAN
30741#undef DUK__FLD_DOUBLE
30742#undef DUK__FLD_FLOAT
30743#undef DUK__FLD_SIGNED
30744#undef DUK__FLD_TYPEDARRAY
30745#undef DUK__FLD_VARINT
30755#if defined(DUK_USE_CBOR_SUPPORT)
30776 duk_uint8_t *buf_end;
30785 const duk_uint8_t *buf;
30802 return (duk_uint32_t) d;
30852 duk_uint8_t *p_new;
30863 oldlen = enc_ctx->
len;
30864 minlen = oldlen + len;
30869#if defined(DUK_CBOR_STRESS)
30870 newlen = oldlen + 1U;
30872 newlen = oldlen * 2U;
30876 if (minlen > newlen) {
30888 enc_ctx->
buf = p_new;
30890 enc_ctx->
ptr = p_new + old_data_len;
30891 enc_ctx->
len = newlen;
30915 *p++ = (duk_uint8_t) (
base + (duk_uint8_t) u);
30916 }
else if (u <= 0xffUL) {
30917 *p++ =
base + 0x18U;
30918 *p++ = (duk_uint8_t) u;
30919 }
else if (u <= 0xffffUL) {
30920 *p++ =
base + 0x19U;
30923 *p++ =
base + 0x1aU;
30929#if defined(DUK_CBOR_DOUBLE_AS_IS)
30964 u16 = (((duk_uint16_t) u.
uc[7]) << 8) | ((duk_uint16_t) u.
uc[6]);
30965 expt = (duk_int16_t) ((u16 & 0x7ff0U) >> 4) - 1023;
30967 if (expt >= -14 && expt <= 15) {
30977 (u.
uc[0] == 0 && u.
uc[1] == 0 && u.
uc[2] == 0 && u.
uc[3] == 0 && u.
uc[4] == 0 && (u.
uc[5] & 0x03U) == 0);
30979 if (use_half_float) {
30983 t = (duk_uint32_t) (u.
uc[7] & 0x80U) << 8;
30984 t += (duk_uint32_t) expt << 10;
30985 t += ((duk_uint32_t) u.
uc[6] & 0x0fU) << 6;
30986 t += ((duk_uint32_t) u.
uc[5]) >> 2;
30998 if (expt >= -126 && expt <= 127) {
31014 (u.
uc[0] == 0 && u.
uc[1] == 0 && u.
uc[2] == 0 && (u.
uc[3] & 0xe0U) == 0);
31030 if (expt == 1024) {
31133 if (d >= -4294967296.0) {
31152 if (d <= 4294967295.0) {
31173 const duk_uint8_t *str;
31216#if defined(DUK_CBOR_TEXT_STRINGS)
31218#elif defined(DUK_CBOR_BYTE_STRINGS)
31222 (duk_uint32_t) len,
31227 duk_memcpy((
void *) p, (
const void *) str, len);
31238 duk_uint32_t
count;
31255 for (i = 0; i < len; i++) {
31285 *p++ = 0xa0U + 0x1fU;
31298 if (
count <= 0x17U) {
31474 return dec_ctx->
buf[dec_ctx->
off++];
31505 return dec_ctx->
buf[dec_ctx->
off];
31510 dec_ctx->
off -= len;
31515 if (dec_ctx->
off + len > dec_ctx->
len) {
31524 const duk_uint8_t *res = dec_ctx->
buf + dec_ctx->
off;
31525 dec_ctx->
off += len;
31547 duk_uint32_t t, t1, t2;
31580 t3 = (duk_uint64_t) t2 *
DUK_U64_CONSTANT(0x100000000) + (duk_uint64_t) t1;
31582 if (t3 == DUK_UINT64_MAX) {
31589 return -18446744073709551616.0;
31598 t3 = (duk_uint64_t) t2 *
DUK_U64_CONSTANT(0x100000000) + (duk_uint64_t) t1;
31612 if (t3 != DUK_UINT64_MAX) {
31659 const duk_int8_t skips[32] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31660 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 8, -1, -1, -1, -1 };
31679 return (duk_uint32_t) ai;
31708 const duk_uint8_t *inp;
31712 if ((ib & 0xe0U) != expected_base) {
31720 duk_memcpy((
void *) buf, (
const void *) inp, (
size_t) len);
31728 duk_uint8_t *p = NULL;
31737 for (idx =
base; idx < top; idx++) {
31738 duk_uint8_t *buf_data;
31746 total_size += buf_size;
31780 }
else if (
count > 1) {
31787 const duk_uint8_t *inp;
31795 expt = (
duk_int_t) ((u16 >> 10) & 0x1fU) - 15;
31807 if ((u16 & 0x03ffU) == 0) {
31808 u.uc[7] = inp[0] & 0x80U;
31821 u.uc[6] = 0x10U + (duk_uint8_t) ((u16 >> 6) & 0x0fU);
31822 u.uc[5] = (duk_uint8_t) ((u16 << 2) & 0xffU);
31825 res = u.d - 0.00006103515625;
31826 if (u16 & 0x8000U) {
31831 }
else if (expt == 16) {
31833 if ((u16 & 0x03ffU) == 0) {
31834 u.uc[7] = (inp[0] & 0x80U) + 0x7fU;
31842 u.uc[7] = (inp[0] & 0x80U) + 0x7fU;
31847 tmp = (inp[0] & 0x80U) ? 0x80000000UL : 0UL;
31851 u.uc[7] = (tmp >> 24) & 0xffU;
31852 u.uc[6] = (tmp >> 16) & 0xffU;
31853 u.uc[5] = (tmp >> 8) & 0xffU;
31854 u.uc[4] = (tmp >> 0) & 0xffU;
31880 duk_uint8_t *buf_data;
31889 const duk_uint8_t *inp;
31906 duk_uint32_t idx, len;
31914 len = 0xffffffffUL;
31917 if (len == 0xffffffffUL) {
31954 duk_uint32_t
count;
31959 count = 0xffffffffUL;
31962 if (
count == 0xffffffffUL) {
31970 if (
count == 0xffffffffUL) {
31975 if (
count == 0UL) {
32007 const duk_uint8_t *inp;
32016 const duk_uint8_t *inp;
32023#if defined(DUK_CBOR_DECODE_FASTPATH)
32024#define DUK__CBOR_AI (ib & 0x1fU)
32034reread_initial_byte:
32318 goto reread_initial_byte;
32324 goto reread_initial_byte;
32417 duk_uint8_t ib, mt, ai;
32424reread_initial_byte:
32479 goto reread_initial_byte;
32598 if (dec_ctx.
off != dec_ctx.
len) {
32634#if defined(DUK_USE_CBOR_BUILTIN)
32635#if defined(DUK_USE_CBOR_SUPPORT)
32700#define DUK__DPRINT_PARTS_AND_DPARTS(parts, dparts) \
32702 DUK_D(DUK_DPRINT("parts: %ld %ld %ld %ld %ld %ld %ld %ld, dparts: %lf %lf %lf %lf %lf %lf %lf %lf", \
32703 (long) (parts)[0], \
32704 (long) (parts)[1], \
32705 (long) (parts)[2], \
32706 (long) (parts)[3], \
32707 (long) (parts)[4], \
32708 (long) (parts)[5], \
32709 (long) (parts)[6], \
32710 (long) (parts)[7], \
32711 (double) (dparts)[0], \
32712 (double) (dparts)[1], \
32713 (double) (dparts)[2], \
32714 (double) (dparts)[3], \
32715 (double) (dparts)[4], \
32716 (double) (dparts)[5], \
32717 (double) (dparts)[6], \
32718 (double) (dparts)[7])); \
32720#define DUK__DPRINT_PARTS(parts) \
32722 DUK_D(DUK_DPRINT("parts: %ld %ld %ld %ld %ld %ld %ld %ld", \
32723 (long) (parts)[0], \
32724 (long) (parts)[1], \
32725 (long) (parts)[2], \
32726 (long) (parts)[3], \
32727 (long) (parts)[4], \
32728 (long) (parts)[5], \
32729 (long) (parts)[6], \
32730 (long) (parts)[7])); \
32732#define DUK__DPRINT_DPARTS(dparts) \
32734 DUK_D(DUK_DPRINT("dparts: %lf %lf %lf %lf %lf %lf %lf %lf", \
32735 (double) (dparts)[0], \
32736 (double) (dparts)[1], \
32737 (double) (dparts)[2], \
32738 (double) (dparts)[3], \
32739 (double) (dparts)[4], \
32740 (double) (dparts)[5], \
32741 (double) (dparts)[6], \
32742 (double) (dparts)[7])); \
32750#define DUK__YEAR(x) ((duk_uint8_t) ((x) -1970))
32796#define DUK__NUM_ISO8601_PARSER_PARTS 9
32799#define DUK__PI_YEAR 0
32800#define DUK__PI_MONTH 1
32801#define DUK__PI_DAY 2
32802#define DUK__PI_HOUR 3
32803#define DUK__PI_MINUTE 4
32804#define DUK__PI_SECOND 5
32805#define DUK__PI_MILLISECOND 6
32806#define DUK__PI_TZHOUR 7
32807#define DUK__PI_TZMINUTE 8
32810#define DUK__PM_YEAR (1 << DUK__PI_YEAR)
32811#define DUK__PM_MONTH (1 << DUK__PI_MONTH)
32812#define DUK__PM_DAY (1 << DUK__PI_DAY)
32813#define DUK__PM_HOUR (1 << DUK__PI_HOUR)
32814#define DUK__PM_MINUTE (1 << DUK__PI_MINUTE)
32815#define DUK__PM_SECOND (1 << DUK__PI_SECOND)
32816#define DUK__PM_MILLISECOND (1 << DUK__PI_MILLISECOND)
32817#define DUK__PM_TZHOUR (1 << DUK__PI_TZHOUR)
32818#define DUK__PM_TZMINUTE (1 << DUK__PI_TZMINUTE)
32821#define DUK__SI_PLUS 0
32822#define DUK__SI_MINUS 1
32824#define DUK__SI_SPACE 3
32825#define DUK__SI_COLON 4
32826#define DUK__SI_PERIOD 5
32828#define DUK__SI_NUL 7
32831#define DUK__SM_PLUS (1 << DUK__SI_PLUS)
32832#define DUK__SM_MINUS (1 << DUK__SI_MINUS)
32833#define DUK__SM_T (1 << DUK__SI_T)
32834#define DUK__SM_SPACE (1 << DUK__SI_SPACE)
32835#define DUK__SM_COLON (1 << DUK__SI_COLON)
32836#define DUK__SM_PERIOD (1 << DUK__SI_PERIOD)
32837#define DUK__SM_Z (1 << DUK__SI_Z)
32838#define DUK__SM_NUL (1 << DUK__SI_NUL)
32841#define DUK__CF_NEG (1 << 0)
32842#define DUK__CF_ACCEPT (1 << 1)
32843#define DUK__CF_ACCEPT_NUL (1 << 2)
32845#define DUK__PACK_RULE(partmask, sepmask, nextpart, flags) \
32846 ((duk_uint32_t) (partmask) + (((duk_uint32_t) (sepmask)) << 9) + (((duk_uint32_t) (nextpart)) << 17) + \
32847 (((duk_uint32_t) (flags)) << 21))
32849#define DUK__UNPACK_RULE(rule, var_nextidx, var_flags) \
32851 (var_nextidx) = (duk_small_uint_t) (((rule) >> 17) & 0x0f); \
32852 (var_flags) = (duk_small_uint_t) ((rule) >> 21); \
32855#define DUK__RULE_MASK_PART_SEP 0x1ffffUL
32905 const duk_uint8_t *p;
32921 p = (
const duk_uint8_t *) str;
32938 if (ndigits >= 9) {
32952 if (ndigits <= 0) {
32957 while (ndigits < 3) {
32962 parts[part_idx] = accum;
32979 match_val = (1UL << part_idx) + (1UL << (sep_idx + 9));
32986 DUK_DDD(
DUK_DDDPRINT(
"part_idx=%ld, sep_idx=%ld, match_val=0x%08lx, considering rule=0x%08lx",
32989 (
unsigned long) match_val,
32990 (
unsigned long) rule));
32992 if ((rule & match_val) != match_val) {
32999 "rule=0x%08lx -> nextpart=%ld, cflags=0x%02lx",
33002 (
unsigned long) match_val,
33003 (
unsigned long) rule,
33005 (
unsigned long) cflags));
33023 part_idx = nextpart;
33056 if (neg_tzoffset) {
33075 dparts[i] = parts[i];
33115#if defined(DUK_USE_DATE_PARSE_STRING)
33121 if (DUK_USE_DATE_PARSE_STRING(thr, str) != 0) {
33142 (duk_uint8_t) 31, (duk_uint8_t) 30, (duk_uint8_t) 31, (duk_uint8_t) 31,
33143 (duk_uint8_t) 30, (duk_uint8_t) 31, (duk_uint8_t) 30, (duk_uint8_t) 31 };
33148#define DUK__LOCAL_TZOFFSET_MAXITER 4
33156#define DUK__WEEKDAY_MOD_ADDER (20000000 * 7)
33159 if ((year % 4) != 0) {
33162 if ((year % 100) != 0) {
33165 if ((year % 400) != 0) {
33208 return (a - b + 1) / b;
33231 year = 1970 + day / 365;
33233 year = 1970 + day / 366;
33238 DUK_DDD(
DUK_DDDPRINT(
"year=%ld day=%ld, diff_days=%ld", (
long) year, (
long) day, (
long) diff_days));
33239 if (diff_days <= 0) {
33241 *out_day_within_year = -diff_days;
33242 DUK_DDD(
DUK_DDDPRINT(
"--> year=%ld, day-within-year=%ld", (
long) year, (
long) *out_day_within_year));
33251 year -= 1 + (diff_days - 1) / 366;
33298 DUK_DD(
DUK_DDPRINT(
"year not in ecmascript valid range, avoid integer overflow: %lf", (
double) year));
33305 for (i = 0; i < n; i++) {
33307 if (i == 1 && is_leap) {
33361 day_since_epoch = t2;
33381 DUK_DDD(
DUK_DDDPRINT(
"d=%lf, d1=%lf, d2=%lf, t1=%ld, t2=%ld, parts: hour=%ld min=%ld sec=%ld msec=%ld",
33402 for (month = 0; month < 12; month++) {
33404 if (month == 1 && is_leap) {
33407 DUK_DDD(
DUK_DDDPRINT(
"month=%ld, dim=%ld, day=%ld", (
long) month, (
long) dim, (
long) day));
33432 jan1_since_epoch = day_since_epoch - day_in_year;
33435 DUK_ASSERT(jan1_weekday >= 0 && jan1_weekday <= 6);
33436 arridx = jan1_weekday;
33444 DUK_DDD(
DUK_DDDPRINT(
"equiv year mapping, year=%ld, day_in_year=%ld, day_since_epoch=%ld, "
33445 "jan1_since_epoch=%ld, jan1_weekday=%ld -> equiv year %ld",
33447 (
long) day_in_year,
33448 (
long) day_since_epoch,
33449 (
long) jan1_since_epoch,
33450 (
long) jan1_weekday,
33451 (
long) equiv_year));
33463 if (dparts != NULL) {
33477#if defined(DUK_USE_PARANOID_DATE_COMPUTATION)
33488 duk_int_t tzoff, tzoffprev1, tzoffprev2;
33540 DUK_DDD(
DUK_DDDPRINT(
"time=%lf day=%lf --> timeval=%lf", (
double) tmp_time, (
double) tmp_day, (
double) d));
33561 tzoff = DUK_USE_DATE_GET_LOCAL_TZOFFSET(d);
33563 d -= tzoff * 1000L;
33570 tzoffprev1 = 999999999L;
33572 tzoffprev2 = tzoffprev1;
33573 tzoffprev1 = tzoff;
33574 tzoff = DUK_USE_DATE_GET_LOCAL_TZOFFSET(d - tzoff * 1000L);
33575 DUK_DDD(
DUK_DDDPRINT(
"tzoffset iteration, i=%d, tzoff=%ld, tzoffprev1=%ld tzoffprev2=%ld",
33579 (
long) tzoffprev2));
33580 if (tzoff == tzoffprev1) {
33581 DUK_DDD(
DUK_DDDPRINT(
"tzoffset iteration finished, i=%d, tzoff=%ld, tzoffprev1=%ld, tzoffprev2=%ld",
33585 (
long) tzoffprev2));
33587 }
else if (tzoff == tzoffprev2) {
33594 "tzoffset iteration two-value cycle, i=%d, tzoff=%ld, tzoffprev1=%ld, tzoffprev2=%ld",
33598 (
long) tzoffprev2));
33599 if (tzoffprev1 > tzoff) {
33600 tzoff = tzoffprev1;
33606 d -= tzoff * 1000L;
33655 tzoffset = DUK_USE_DATE_GET_LOCAL_TZOFFSET(d);
33656 d += tzoffset * 1000L;
33658 if (out_tzoffset) {
33659 *out_tzoffset = tzoffset;
33711 yearstr[
sizeof(yearstr) - 1] = (
char) 0;
33720 if (tzoffset >= 0) {
33722 fmt =
"+%02d:%02d";
33725 fmt =
"-%02d:%02d";
33728 arg_hours = tmp / 60;
33729 arg_minutes = tmp % 60;
33731 arg_hours = arg_hours & 0x3f;
33734 DUK_SNPRINTF(tzstr,
sizeof(tzstr), fmt, (
int) arg_hours, (
int) arg_minutes);
33735 tzstr[
sizeof(tzstr) - 1] = (
char) 0;
33738 tzstr[1] = (char) 0;
33746 "%s-%02d-%02d%c%02d:%02d:%02d.%03d%s",
33747 (
const char *) yearstr,
33755 (
const char *) tzstr);
33759 (
const char *) yearstr,
33765 "%02d:%02d:%02d.%03d%s",
33770 (
const char *) tzstr);
33804#if defined(DUK_USE_DATE_FORMAT_STRING)
33810 rc = DUK_USE_DATE_FORMAT_STRING(thr, parts, tzoffset, flags);
33921 for (i = 0; i < maxnargs; i++) {
33926 idx = idx_first + i;
33946 dparts[idx] -= 1.0;
33980 if (d >= 0.0 && d <= 99.0) {
34005 for (i = 0; i < 8; i++) {
34027 (
double) dparts[0],
34028 (
double) dparts[1],
34029 (
double) dparts[2],
34030 (
double) dparts[3],
34031 (
double) dparts[4],
34032 (
double) dparts[5],
34033 (
double) dparts[6],
34034 (
double) dparts[7]));
34176#if defined(DUK_USE_DATE_BUILTIN)
34187 DUK_DDD(
DUK_DDDPRINT(
"Date constructor, nargs=%ld, is_cons=%ld", (
long) nargs, (
long) is_cons));
34198 if (nargs == 0 || !is_cons) {
34207 }
else if (nargs == 1) {
34408 tzoffset = DUK_USE_DATE_GET_LOCAL_TZOFFSET(d);
34488#if defined(DUK_USE_SYMBOL_BUILTIN)
34491 const char *hintstr;
34505 if ((hintlen == 6 &&
DUK_STRCMP(hintstr,
"string") == 0) || (hintlen == 7 &&
DUK_STRCMP(hintstr,
"default") == 0)) {
34507 }
else if (hintlen == 6 &&
DUK_STRCMP(hintstr,
"number") == 0) {
34521#undef DUK__CF_ACCEPT
34522#undef DUK__CF_ACCEPT_NUL
34524#undef DUK__DPRINT_DPARTS
34525#undef DUK__DPRINT_PARTS
34526#undef DUK__DPRINT_PARTS_AND_DPARTS
34527#undef DUK__LOCAL_TZOFFSET_MAXITER
34528#undef DUK__NUM_ISO8601_PARSER_PARTS
34529#undef DUK__PACK_RULE
34532#undef DUK__PI_MILLISECOND
34533#undef DUK__PI_MINUTE
34534#undef DUK__PI_MONTH
34535#undef DUK__PI_SECOND
34536#undef DUK__PI_TZHOUR
34537#undef DUK__PI_TZMINUTE
34541#undef DUK__PM_MILLISECOND
34542#undef DUK__PM_MINUTE
34543#undef DUK__PM_MONTH
34544#undef DUK__PM_SECOND
34545#undef DUK__PM_TZHOUR
34546#undef DUK__PM_TZMINUTE
34548#undef DUK__RULE_MASK_PART_SEP
34549#undef DUK__SI_COLON
34550#undef DUK__SI_MINUS
34552#undef DUK__SI_PERIOD
34554#undef DUK__SI_SPACE
34557#undef DUK__SM_COLON
34558#undef DUK__SM_MINUS
34560#undef DUK__SM_PERIOD
34562#undef DUK__SM_SPACE
34565#undef DUK__UNPACK_RULE
34566#undef DUK__WEEKDAY_MOD_ADDER
34581#define DUK__STRPTIME_BUF_SIZE 64
34582#define DUK__STRFTIME_BUF_SIZE 64
34584#if defined(DUK_USE_DATE_NOW_GETTIMEOFDAY)
34590 if (gettimeofday(&tv, NULL) != 0) {
34602#if defined(DUK_USE_DATE_NOW_TIME)
34608 if (t == (time_t) -1) {
34616#if defined(DUK_USE_DATE_TZO_GMTIME) || defined(DUK_USE_DATE_TZO_GMTIME_R) || defined(DUK_USE_DATE_TZO_GMTIME_S)
34623#if defined(DUK_USE_DATE_TZO_GMTIME)
34639 DUK_DD(
DUK_DDPRINT(
"timeval not within valid range, skip tzoffset computation to avoid integer overflows"));
34697 DUK_ASSERT(d >= 0 && d < 2147483648.0 * 1000.0);
34698 t = (time_t) (d / 1000.0);
34701 duk_memzero((
void *) tms,
sizeof(
struct tm) * 2);
34703#if defined(DUK_USE_DATE_TZO_GMTIME_R)
34704 (void) gmtime_r(&t, &tms[0]);
34705 (void) localtime_r(&t, &tms[1]);
34706#elif defined(DUK_USE_DATE_TZO_GMTIME_S)
34707 (void) gmtime_s(&t, &tms[0]);
34708 (void) localtime_s(&t, &tms[1]);
34709#elif defined(DUK_USE_DATE_TZO_GMTIME)
34710 tm_ptr = gmtime(&t);
34711 duk_memcpy((
void *) &tms[0], tm_ptr,
sizeof(
struct tm));
34712 tm_ptr = localtime(&t);
34713 duk_memcpy((
void *) &tms[1], tm_ptr,
sizeof(
struct tm));
34715#error internal error
34717 DUK_DDD(
DUK_DDDPRINT(
"gmtime result: tm={sec:%ld,min:%ld,hour:%ld,mday:%ld,mon:%ld,year:%ld,"
34718 "wday:%ld,yday:%ld,isdst:%ld}",
34719 (
long) tms[0].tm_sec,
34720 (
long) tms[0].tm_min,
34721 (
long) tms[0].tm_hour,
34722 (
long) tms[0].tm_mday,
34723 (
long) tms[0].tm_mon,
34724 (
long) tms[0].tm_year,
34725 (
long) tms[0].tm_wday,
34726 (
long) tms[0].tm_yday,
34727 (
long) tms[0].tm_isdst));
34728 DUK_DDD(
DUK_DDDPRINT(
"localtime result: tm={sec:%ld,min:%ld,hour:%ld,mday:%ld,mon:%ld,year:%ld,"
34729 "wday:%ld,yday:%ld,isdst:%ld}",
34730 (
long) tms[1].tm_sec,
34731 (
long) tms[1].tm_min,
34732 (
long) tms[1].tm_hour,
34733 (
long) tms[1].tm_mday,
34734 (
long) tms[1].tm_mon,
34735 (
long) tms[1].tm_year,
34736 (
long) tms[1].tm_wday,
34737 (
long) tms[1].tm_yday,
34738 (
long) tms[1].tm_isdst));
34745 tms[0].tm_isdst = 0;
34746 tms[1].tm_isdst = 0;
34747 t1 = mktime(&tms[0]);
34748 t2 = mktime(&tms[1]);
34749 if (t1 == (time_t) -1 || t2 == (time_t) -1) {
34778#if defined(DUK_USE_DATE_PRS_STRPTIME)
34787 DUK_SNPRINTF(buf,
sizeof(buf),
"%s", (
const char *) str);
34788 buf[
sizeof(buf) - 1] = (
char) 0;
34793 if (strptime((
const char *) buf,
"%c", &tm) != NULL) {
34794 DUK_DDD(
DUK_DDDPRINT(
"before mktime: tm={sec:%ld,min:%ld,hour:%ld,mday:%ld,mon:%ld,year:%ld,"
34795 "wday:%ld,yday:%ld,isdst:%ld}",
34804 (
long) tm.tm_isdst));
34819#if defined(DUK_USE_DATE_PRS_GETDATE)
34846#if defined(DUK_USE_DATE_FMT_STRFTIME)
34892 (void) strftime(buf,
sizeof(buf) - 1, fmt, &tm);
34900#if defined(DUK_USE_GET_MONOTONIC_TIME_CLOCK_GETTIME)
34902 struct timespec ts;
34904 if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {
34914#undef DUK__STRFTIME_BUF_SIZE
34915#undef DUK__STRPTIME_BUF_SIZE
34928#if defined(DUK_USE_DATE_NOW_WINDOWS) || defined(DUK_USE_DATE_TZO_WINDOWS)
34930DUK_LOCAL void duk__convert_systime_to_ularge(
const SYSTEMTIME *st, ULARGE_INTEGER *res) {
34932 if (SystemTimeToFileTime(st, &ft) == 0) {
34936 res->LowPart = ft.dwLowDateTime;
34937 res->HighPart = ft.dwHighDateTime;
34941#if defined(DUK_USE_DATE_NOW_WINDOWS_SUBMS)
34942DUK_LOCAL void duk__convert_filetime_to_ularge(
const FILETIME *ft, ULARGE_INTEGER *res) {
34943 res->LowPart = ft->dwLowDateTime;
34944 res->HighPart = ft->dwHighDateTime;
34948DUK_LOCAL void duk__set_systime_jan1970(SYSTEMTIME *st) {
34952 st->wDayOfWeek = 4;
34961#if defined(DUK_USE_DATE_NOW_WINDOWS)
34966 SYSTEMTIME st1, st2;
34967 ULARGE_INTEGER tmp1, tmp2;
34969 GetSystemTime(&st1);
34970 duk__convert_systime_to_ularge((
const SYSTEMTIME *) &st1, &tmp1);
34972 duk__set_systime_jan1970(&st2);
34973 duk__convert_systime_to_ularge((
const SYSTEMTIME *) &st2, &tmp2);
34979 return (
duk_double_t) ((LONGLONG) tmp1.QuadPart - (LONGLONG) tmp2.QuadPart) / 10000.0;
34983#if defined(DUK_USE_DATE_NOW_WINDOWS_SUBMS)
34990 ULARGE_INTEGER tmp1, tmp2;
34992 GetSystemTimePreciseAsFileTime(&ft1);
34993 duk__convert_filetime_to_ularge((
const FILETIME *) &ft1, &tmp1);
34995 duk__set_systime_jan1970(&st2);
34996 duk__convert_systime_to_ularge((
const SYSTEMTIME *) &st2, &tmp2);
35001 return (
duk_double_t) ((LONGLONG) tmp1.QuadPart - (LONGLONG) tmp2.QuadPart) / 10000.0;
35005#if defined(DUK_USE_DATE_TZO_WINDOWS)
35010 ULARGE_INTEGER tmp1;
35011 ULARGE_INTEGER tmp2;
35012 ULARGE_INTEGER tmp3;
35026 duk__set_systime_jan1970(&st1);
35027 duk__convert_systime_to_ularge((
const SYSTEMTIME *) &st1, &tmp1);
35028 tmp2.QuadPart = (ULONGLONG) (d * 10000.0);
35029 tmp2.QuadPart += tmp1.QuadPart;
35031 ft1.dwLowDateTime = tmp2.LowPart;
35032 ft1.dwHighDateTime = tmp2.HighPart;
35033 if (FileTimeToSystemTime((
const FILETIME *) &ft1, &st2) == 0) {
35034 DUK_D(
DUK_DPRINT(
"FileTimeToSystemTime() failed, return tzoffset 0"));
35037 if (SystemTimeToTzSpecificLocalTime((LPTIME_ZONE_INFORMATION) NULL, &st2, &st3) == 0) {
35038 DUK_D(
DUK_DPRINT(
"SystemTimeToTzSpecificLocalTime() failed, return tzoffset 0"));
35041 duk__convert_systime_to_ularge((
const SYSTEMTIME *) &st3, &tmp3);
35048#if defined(DUK_USE_DATE_TZO_WINDOWS_NO_DST)
35054 ULARGE_INTEGER tmp1;
35055 ULARGE_INTEGER tmp2;
35066 duk__set_systime_jan1970(&st1);
35067 duk__convert_systime_to_ularge((
const SYSTEMTIME *) &st1, &tmp1);
35069 ft1.dwLowDateTime = tmp1.LowPart;
35070 ft1.dwHighDateTime = tmp1.HighPart;
35071 if (FileTimeToLocalFileTime((
const FILETIME *) &ft1, &ft2) == 0) {
35072 DUK_D(
DUK_DPRINT(
"FileTimeToLocalFileTime() failed, return tzoffset 0"));
35075 if (FileTimeToSystemTime((
const FILETIME *) &ft2, &st2) == 0) {
35076 DUK_D(
DUK_DPRINT(
"FileTimeToSystemTime() failed, return tzoffset 0"));
35079 duk__convert_systime_to_ularge((
const SYSTEMTIME *) &st2, &tmp2);
35085#if defined(DUK_USE_GET_MONOTONIC_TIME_WINDOWS_QPC)
35087 LARGE_INTEGER
count, freq;
35098 if (QueryPerformanceCounter(&
count) && QueryPerformanceFrequency(&freq)) {
35124#if defined(DUK_USE_DUKTAPE_BUILTIN)
35152#if defined(DUK_USE_FINALIZER_SUPPORT)
35194#if defined(DUK_USE_JSON_SUPPORT) && defined(DUK_USE_JX)
35203#if defined(DUK_USE_JSON_SUPPORT) && defined(DUK_USE_JC)
35236#if defined(DUK_USE_JSON_SUPPORT) && defined(DUK_USE_JX)
35240#if defined(DUK_USE_JSON_SUPPORT) && defined(DUK_USE_JC)
35284 duk_uint8_t needed;
35285 duk_uint8_t bom_handled;
35289 duk_uint8_t ignore_bom;
35295#define DUK__CP_CONTINUE (-1)
35296#define DUK__CP_ERROR (-2)
35297#define DUK__CP_RETRY (-3)
35316 dec_ctx->
upper = 0xbf;
35317 dec_ctx->
lower = 0x80;
35332 if (dec_ctx->
needed == 0) {
35337 }
else if (x >= 0xc2 && x <= 0xdf) {
35344 }
else if (x >= 0xe0 && x <= 0xef) {
35347 dec_ctx->
lower = 0xa0;
35349 }
else if (x == 0xed) {
35351 dec_ctx->
upper = 0x9f;
35356 }
else if (x >= 0xf0 && x <= 0xf4) {
35359 dec_ctx->
lower = 0x90;
35361 }
else if (x == 0xf4) {
35363 dec_ctx->
upper = 0x8f;
35374 if (x >= dec_ctx->
lower && x <= dec_ctx->upper) {
35375 dec_ctx->
lower = 0x80;
35376 dec_ctx->
upper = 0xbf;
35378 if (--dec_ctx->
needed > 0) {
35399 dec_ctx->
lower = 0x80;
35400 dec_ctx->
upper = 0xbf;
35406#if defined(DUK_USE_ENCODING_BUILTINS)
35414#if !defined(DUK_USE_PREFER_SIZE)
35415 if (codepoint <= 0x7f && enc_ctx->lead == 0x0000L) {
35417 *enc_ctx->
out++ = (duk_uint8_t) codepoint;
35425 }
else if (codepoint >= 0xd800L && codepoint <= 0xdfffL) {
35426 if (codepoint <= 0xdbffL) {
35429 enc_ctx->
lead = codepoint;
35430 if (prev_lead == 0x0000L) {
35439 if (enc_ctx->
lead != 0x0000L) {
35441 (
duk_codepoint_t) (0x010000L + ((enc_ctx->
lead - 0xd800L) << 10) + (codepoint - 0xdc00L));
35442 enc_ctx->
lead = 0x0000L;
35450 if (enc_ctx->
lead != 0x0000L) {
35452 enc_ctx->
lead = 0x0000L;
35468 const duk_uint8_t *input;
35473 duk_uint8_t *output;
35474 const duk_uint8_t *in;
35540 while (in < input + len) {
35542 if (codepoint < 0) {
35554 if (dec_ctx->
fatal) {
35560 DUK_ASSERT(codepoint >= 0x0000L && codepoint <= 0x10ffffL);
35564 if (codepoint == 0xfeffL && !dec_ctx->
ignore_bom) {
35570 DUK_ASSERT(out <= output + (3 + (3 * len)));
35574 if (dec_ctx->
needed != 0) {
35576 if (dec_ctx->
fatal) {
35580 DUK_ASSERT(out <= output + (3 + (3 * len)));
35601#if defined(DUK_USE_ENCODING_BUILTINS)
35620 duk_uint8_t *output;
35665 enc_ctx.
lead = 0x0000L;
35666 enc_ctx.
out = output;
35668 if (enc_ctx.
lead != 0x0000L) {
35693#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
35725 dec_ctx->
fatal = (duk_uint8_t) fatal;
35726 dec_ctx->
ignore_bom = (duk_uint8_t) ignore_bom;
35795#undef DUK__CP_CONTINUE
35796#undef DUK__CP_ERROR
35797#undef DUK__CP_RETRY
35833#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
35890#if defined(DUK_USE_TRACEBACKS)
35907#define DUK__OUTPUT_TYPE_TRACEBACK (-1)
35908#define DUK__OUTPUT_TYPE_FILENAME 0
35909#define DUK__OUTPUT_TYPE_LINENUMBER 1
35916 const char *str_tailcall =
" tailcall";
35917 const char *str_strict =
" strict";
35918 const char *str_construct =
" construct";
35919 const char *str_prevyield =
" preventsyield";
35920 const char *str_directeval =
" directeval";
35921 const char *str_empty =
"";
35938 for (i = 0;; i += 2) {
35943 const char *funcname;
35944 const char *filename;
35972#if defined(DUK_USE_PC2LINE)
35999 filename = filename ? filename :
"";
36005 if (h_func == NULL) {
36008 "at %s light%s%s%s%s%s",
36009 (
const char *) funcname,
36018 "at %s (%s) native%s%s%s%s%s",
36019 (
const char *) funcname,
36020 (
const char *) filename,
36029 "at %s (%s:%lu)%s%s%s%s%s",
36030 (
const char *) funcname,
36031 (
const char *) filename,
36032 (
unsigned long)
line,
36042 const char *str_file;
36072 "at [anon] (%s:%ld) internal",
36073 (
const char *) (str_file ? str_file :
"null"),
36195#undef DUK__OUTPUT_TYPE_FILENAME
36196#undef DUK__OUTPUT_TYPE_LINENUMBER
36197#undef DUK__OUTPUT_TYPE_TRACEBACK
36211#if defined(DUK_USE_FUNCTION_BUILTIN)
36224 for (i = 0; i < nargs; i++) {
36231 }
else if (nargs == 1) {
36294#if defined(DUK_USE_FUNCTION_BUILTIN)
36324 const char *func_name;
36342 duk_push_sprintf(thr,
"function %s() { [ecmascript code] }", (
const char *) func_name);
36344 duk_push_sprintf(thr,
"function %s() { [native code] }", (
const char *) func_name);
36346 duk_push_sprintf(thr,
"function %s() { [bound code] }", (
const char *) func_name);
36392#if defined(DUK_USE_FUNCTION_BUILTIN)
36448 tv_prevbound = NULL;
36495 tv_prevbound = h_boundtarget->
args;
36496 n_prevbound = h_boundtarget->
nargs;
36511 bound_nargs = n_prevbound + nargs;
36516 DUK_ASSERT(tv_res != NULL || bound_nargs == 0);
36519 h_bound->
args = tv_res;
36520 h_bound->
nargs = bound_nargs;
36534 if (bound_len < nargs) {
36537 bound_len -= nargs;
36568#if defined(DUK_USE_FUNC_FILENAME_PROPERTY)
36583 duk_int16_t func_nargs;
36594 func_nargs = h->nargs;
36627 duk_push_hnatfunc_name(thr, h);
36641#if defined(DUK_USE_SYMBOL_BUILTIN)
36669#define DUK__MKBITS(a, b, c, d, e, f, g, h) \
36670 ((duk_uint8_t) (((a) << 0) | ((b) << 1) | ((c) << 2) | ((d) << 3) | ((e) << 4) | ((f) << 5) | ((g) << 6) | ((h) << 7)))
36671#define DUK__CHECK_BITMASK(table, cp) ((table)[(cp) >> 3] & (1 << ((cp) &0x07)))
36675 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36676 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36677 DUK__MKBITS(0, 1, 0, 1, 1, 0, 1, 1),
DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
36678 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 1, 0, 1, 0, 1),
36679 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
36680 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 0, 0, 0, 0, 1),
36681 DUK__MKBITS(0, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
36682 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 0, 0, 0, 1, 0),
36687 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36688 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36689 DUK__MKBITS(0, 1, 0, 0, 0, 0, 0, 1),
DUK__MKBITS(1, 1, 1, 0, 0, 1, 1, 0),
36690 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 0, 0, 0, 0, 0, 0),
36691 DUK__MKBITS(0, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
36692 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 0, 0, 0, 0, 1),
36693 DUK__MKBITS(0, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
36694 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 0, 0, 0, 1, 0),
36699 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36700 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36701 DUK__MKBITS(0, 0, 0, 1, 1, 0, 1, 0),
DUK__MKBITS(0, 0, 0, 1, 1, 0, 0, 1),
36702 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 1, 1, 0, 1, 0, 1),
36703 DUK__MKBITS(1, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36704 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36705 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36706 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36711 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36712 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36713 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36714 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36715 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36716 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36717 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36718 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36721#if defined(DUK_USE_SECTION_B)
36724 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36725 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
36726 DUK__MKBITS(0, 0, 0, 0, 0, 0, 0, 0),
DUK__MKBITS(0, 0, 1, 1, 0, 1, 1, 1),
36727 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 0, 0, 0, 0, 0, 0),
36728 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
36729 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 0, 0, 0, 0, 1),
36730 DUK__MKBITS(0, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
36731 DUK__MKBITS(1, 1, 1, 1, 1, 1, 1, 1),
DUK__MKBITS(1, 1, 1, 0, 0, 0, 0, 0)
36739 const duk_uint8_t *p;
36740 const duk_uint8_t *p_start;
36741 const duk_uint8_t *p_end;
36769 tfm_ctx->
thr = thr;
36780 while (tfm_ctx->
p < tfm_ctx->
p_end) {
36782 callback(tfm_ctx, udata, cp);
36796 const duk_uint8_t *unescaped_table = (
const duk_uint8_t *) udata;
36809 }
else if (cp >= 0xdc00L && cp <= 0xdfffL) {
36811 }
else if (cp >= 0xd800L && cp <= 0xdbffL) {
36820 if (!(cp2 >= 0xdc00L && cp2 <= 0xdfffL)) {
36824 cp = (
duk_codepoint_t) (((cp1 - 0xd800L) << 10) + (cp2 - 0xdc00L) + 0x10000L);
36825 }
else if (cp > 0x10ffffL) {
36842 for (i = 0; i < len; i++) {
36859 const duk_uint8_t *reserved_table = (
const duk_uint8_t *) udata;
36874 const duk_uint8_t *p = tfm_ctx->
p;
36914 }
else if (t < 0xe0) {
36919 }
else if (t < 0xf0) {
36924 }
else if (t < 0xf8) {
36934 if (left < utf8_blen * 3 - 1) {
36940 for (i = 1; i < utf8_blen; i++) {
36947 (
unsigned long) t));
36951 if ((t & 0xc0) != 0x80) {
36954 cp = (cp << 6) + (t & 0x3f);
36962 if (cp < min_cp || cp > 0x10ffffL || (cp >= 0xd800L && cp <= 0xdfffL)) {
36977 if (cp >= 0x10000L) {
36996#if defined(DUK_USE_SECTION_B)
37006 }
else if (cp < 0x100L) {
37012 }
else if (cp < 0x10000L) {
37043 const duk_uint8_t *p = tfm_ctx->
p;
37102#if defined(DUK_USE_DEBUGGER_SUPPORT)
37119 if (act_caller != NULL) {
37145 if (act_caller->
lex_env == NULL) {
37155 this_to_global = 0;
37162 "var_env and lex_env to a fresh env, "
37163 "this_binding to caller's this_binding"));
37165 act_lex_env = act_caller->
lex_env;
37187 "var_env and lex_env to caller's envs, "
37188 "this_binding to caller's this_binding"));
37190 outer_lex_env = act_caller->
lex_env;
37191 outer_var_env = act_caller->
var_env;
37198 "global object, this_binding to global object"));
37200 this_to_global = 1;
37210 if (this_to_global) {
37251#if defined(DUK_USE_GLOBAL_BUILTIN)
37275 if (radix < 2 || radix > 36) {
37279 s2n_flags &= ~DUK_S2N_FLAG_ALLOW_AUTO_HEX_INT;
37295#if defined(DUK_USE_GLOBAL_BUILTIN)
37316#if defined(DUK_USE_GLOBAL_BUILTIN)
37324#if defined(DUK_USE_GLOBAL_BUILTIN)
37336#if defined(DUK_USE_GLOBAL_BUILTIN)
37357#if defined(DUK_USE_SECTION_B)
37369#undef DUK__CHECK_BITMASK
37389#if defined(DUK_USE_JSON_SUPPORT)
37395#define DUK__JSON_DECSTR_BUFSIZE 128
37396#define DUK__JSON_DECSTR_CHUNKSIZE 64
37397#define DUK__JSON_ENCSTR_CHUNKSIZE 64
37398#define DUK__JSON_STRINGIFY_BUFSIZE 128
37399#define DUK__JSON_MAX_ESC_LEN 10
37403#if defined(DUK_USE_JX)
37411#if defined(DUK_USE_JX)
37428#if defined(DUK_USE_FASTINT)
37442#if defined(DUK_USE_FASTINT)
37445#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
37448#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
37452#if defined(DUK_USE_JSON_STRINGIFY_FASTPATH)
37461#if defined(DUK_USE_JSON_QUOTESTRING_FASTPATH)
37469 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xe2, 0xf4, 0xee, 0x80, 0xe6, 0xf2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
37470 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x20, 0x21, 0xa2, 0x23, 0x24, 0x25, 0x26, 0x27,
37471 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b,
37472 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
37473 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0xdc, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63,
37474 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
37475 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
37476 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
37477 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
37478 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
37479 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
37480 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
37481 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81
37489#if defined(DUK_USE_JSON_DECSTRING_FASTPATH)
37494 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37495 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x23, 0x24, 0x25, 0x26, 0x27,
37496 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b,
37497 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
37498 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x00, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63,
37499 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
37500 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b,
37501 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
37502 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3,
37503 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
37504 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb,
37505 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
37506 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
37510#if defined(DUK_USE_JSON_EATWHITE_FASTPATH)
37515 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37516 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37517 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37518 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37519 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37520 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37521 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37522 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37523 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37524 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37525 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37526 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37527 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
37531#if defined(DUK_USE_JSON_DECNUMBER_FASTPATH)
37536 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37537 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37538 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
37539 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37540 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37541 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37542 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37543 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37544 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37545 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37546 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37547 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37548 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
37575 const duk_uint8_t *p;
37583#if defined(DUK_USE_JSON_EATWHITE_FASTPATH)
37592 if (!(t == 0x20 || t == 0x0a || t == 0x0d || t == 0x09)) {
37604#if defined(DUK_USE_JX)
37613 return *js_ctx->
p++;
37628 for (i = 0; i < n; i++) {
37632 DUK_DDD(
DUK_DDDPRINT(
"decode_hex_escape: i=%ld, n=%ld, res=%ld, x=%ld", (
long) i, (
long) n, (
long) res, (
long) x));
37656 const duk_uint8_t *p;
37725#if defined(DUK_USE_JX)
37770#if defined(DUK_USE_JSON_DECSTRING_FASTPATH)
37774 const duk_uint8_t *p;
37837 }
else if (x < 0x20) {
37841 *q++ = (duk_uint8_t) x;
37858#if defined(DUK_USE_JX)
37864 const duk_uint8_t *p;
37903#if defined(DUK_USE_JX)
37906 const duk_uint8_t *p;
37923 }
else if (x <= 0) {
37956#if defined(DUK_USE_JX)
37959 const duk_uint8_t *p;
37988 }
else if (x <= 0) {
37999 duk_memcpy((
void *) buf, (
const void *) js_ctx->
p, src_len);
38017 const duk_uint8_t *p_start;
38018 const duk_uint8_t *p;
38024 p_start = js_ctx->
p;
38035 (
const void *) p_start,
38037 (
const void *) js_ctx->
p_end,
38040#if defined(DUK_USE_JSON_DECNUMBER_FASTPATH)
38123 (
long) key_count));
38133 }
else if (key_count == 0) {
38147#if defined(DUK_USE_JX)
38215 }
else if (arr_idx == 0) {
38266#if defined(DUK_USE_JX)
38287#if defined(DUK_USE_JX)
38345 for (i = 0; i < arr_len; i++) {
38348 DUK_DDD(
DUK_DDDPRINT(
"walk: array, top=%ld, i=%ld, arr_len=%ld, holder=%!T, name=%!T, val=%!T",
38376 DUK_DDD(
DUK_DDDPRINT(
"walk: object, top=%ld, holder=%!T, name=%!T, val=%!T, enum=%!iT, obj_key=%!T",
38427#define DUK__EMIT_1(js_ctx, ch) duk__emit_1((js_ctx), (duk_uint_fast8_t) (ch))
38428#define DUK__EMIT_2(js_ctx, ch1, ch2) duk__emit_2((js_ctx), (duk_uint_fast8_t) (ch1), (duk_uint_fast8_t) (ch2))
38429#define DUK__EMIT_HSTR(js_ctx, h) duk__emit_hstring((js_ctx), (h))
38430#if defined(DUK_USE_FASTINT) || defined(DUK_USE_JX) || defined(DUK_USE_JC)
38431#define DUK__EMIT_CSTR(js_ctx, p) duk__emit_cstring((js_ctx), (p))
38433#define DUK__EMIT_STRIDX(js_ctx, i) duk__emit_stridx((js_ctx), (i))
38434#define DUK__UNEMIT_1(js_ctx) duk__unemit_1((js_ctx))
38448#if defined(DUK_USE_FASTINT) || defined(DUK_USE_JX) || defined(DUK_USE_JC)
38469#define DUK__MKESC(nybbles, esc1, esc2) \
38470 (((duk_uint_fast32_t) (nybbles)) << 16) | (((duk_uint_fast32_t) (esc1)) << 8) | ((duk_uint_fast32_t) (esc2))
38486#if defined(DUK_USE_JX)
38498#if defined(DUK_USE_JX)
38513 *q++ = (duk_uint8_t) ((tmp >> 8) & 0xff);
38514 *q++ = (duk_uint8_t) (tmp & 0xff);
38527 const duk_int8_t *p, *p_start, *p_end;
38543 p_end = p_start + k_len;
38548 goto quote_normally;
38552 goto quote_normally;
38554 while (p < p_end) {
38557 goto quote_normally;
38579 const duk_uint8_t *p, *p_start, *p_end, *p_now, *p_tmp;
38596 while (p < p_end) {
38612 while (p < p_now) {
38613#if defined(DUK_USE_JSON_QUOTESTRING_FASTPATH)
38620 }
else if (b >= 0xa0) {
38622 *q++ = (duk_uint8_t) (b - 0x80);
38623 }
else if (b == 0x80) {
38642 if (cp == 0x22 || cp == 0x5c) {
38645 *q++ = (duk_uint8_t) cp;
38646 }
else if (cp < 0x20) {
38652 if (cp < (
sizeof(duk__json_quotestr_esc) /
sizeof(duk_uint8_t)) &&
38653 (esc_char = duk__json_quotestr_esc[cp]) != 0) {
38655 *q++ = (duk_uint8_t) esc_char;
38663 *q++ = (duk_uint8_t) cp;
38691#if defined(DUK_USE_NONSTD_JSON_ESC_U2028_U2029)
38739#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
38757#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
38762 }
else if (s == 0) {
38773#if defined(DUK_USE_FASTINT)
38782 duk_uint8_t buf[20 + 1];
38793 DUK_SPRINTF((
char *) buf,
"%lld", (
long long) v);
38798#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
38799#if defined(DUK_USE_HEX_FASTPATH)
38805#if !defined(DUK_USE_UNALIGNED_ACCESSES_POSSIBLE)
38817#if defined(DUK_USE_UNALIGNED_ACCESSES_POSSIBLE)
38818 q16 = (duk_uint16_t *) (
void *) dst;
38822 DUK_DD(
DUK_DDPRINT(
"unaligned accesses not possible, dst not aligned -> step to dst + 1"));
38823 q16 = (duk_uint16_t *) (
void *) (dst + 1);
38826 q16 = (duk_uint16_t *) (
void *) dst;
38831 len_safe = src_len & ~0x03U;
38832 for (i = 0; i < len_safe; i += 4) {
38839 q = (duk_uint8_t *) q16;
38841#if !defined(DUK_USE_UNALIGNED_ACCESSES_POSSIBLE)
38844 duk_memmove((
void *) dst, (
const void *) (dst + 1), 2 * len_safe);
38849 for (; i < src_len; i++) {
38859 const duk_uint8_t *p;
38860 const duk_uint8_t *p_end;
38865 p_end = src + src_len;
38867 while (p != p_end) {
38898 space = 9 + buf_len * 2 + 2;
38903#if defined(DUK_USE_JX) && defined(DUK_USE_JC)
38906#if defined(DUK_USE_JX)
38914#if defined(DUK_USE_JX) && defined(DUK_USE_JC)
38917#if defined(DUK_USE_JC)
38920 duk_memcpy((
void *) q, (
const void *)
"{\"_buf\":\"", 9);
38938#if defined(DUK_USE_JSON_STRINGIFY_FASTPATH)
38941 const duk_uint8_t *buf;
38962 for (i = 0; i < n; i++) {
38965 q +=
DUK_SPRINTF((
char *) q,
"\"%lu\": %u,", (
unsigned long) i, (
unsigned int) buf[i]);
38970 for (i = 0; i < n; i++) {
38972 q +=
DUK_SPRINTF((
char *) q,
"\"%lu\":%u,", (
unsigned long) i, (
unsigned int) buf[i]);
38985#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
38998#if defined(DUK_USE_JX) && defined(DUK_USE_JC)
39001#if defined(DUK_USE_JX)
39003 fmt = ptr ?
"(%p)" :
"(null)";
39006#if defined(DUK_USE_JX) && defined(DUK_USE_JC)
39009#if defined(DUK_USE_JC)
39012 fmt = ptr ?
"{\"_ptr\":\"%p\"}" :
"{\"_ptr\":\"null\"}";
39022#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
39023#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39042#if defined(DUK_USE_PREFER_SIZE)
39048 while (depth-- > 0) {
39054 const duk_uint8_t *gap_data;
39058 duk_uint8_t *p_start;
39079 need_bytes = gap_len * depth;
39083 duk_memcpy((
void *) p, (
const void *) gap_data, (
size_t) gap_len);
39085 avail_bytes = gap_len;
39087 need_bytes -= gap_len;
39089 while (need_bytes >= avail_bytes) {
39090 duk_memcpy((
void *) p, (
const void *) p_start, (
size_t) avail_bytes);
39092 need_bytes -= avail_bytes;
39097 duk_memcpy((
void *) p, (
const void *) p_start, (
size_t) need_bytes);
39126 for (i = 0; i < n; i++) {
39209 idx_obj = entry_top - 1;
39237 for (i = 0; i < arr_len; i++) {
39303 idx_arr = entry_top - 1;
39311 for (i = 0; i < arr_len; i++) {
39426#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
39427#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39458#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39477#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39509#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39524#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39563#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39578#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39588#if defined(DUK_USE_FASTINT)
39608#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39659#if defined(DUK_USE_JSON_STRINGIFY_FASTPATH)
39676#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39681 goto emit_undefined;
39684 goto emit_undefined;
39700 goto emit_undefined;
39709 duk_uint32_t c_bit, c_all, c_array, c_unbox, c_undef, c_func, c_bufobj, c_object, c_abort;
39777 DUK_DD(
DUK_DDPRINT(
"object has a .toJSON property or object is a Proxy, abort fast path"));
39778 goto abort_fastpath;
39790#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
39800 c_object = c_all & ~(c_array | c_unbox | c_func | c_bufobj | c_undef | c_abort);
39816 c_object = c_all & ~(c_array | c_unbox | c_func | c_bufobj | c_undef | c_abort);
39820 if (c_bit & c_object) {
39830 goto abort_fastpath;
39848 goto abort_fastpath;
39858 goto abort_fastpath;
39876 if (duk__json_stringify_fast_value(js_ctx, tv_val) == 0) {
39899 }
else if (c_bit & c_array) {
39908 goto abort_fastpath;
39917 for (i = 0; i < arr_len; i++) {
39930 if (duk__json_stringify_fast_value(js_ctx, tv_arrval) == 0) {
39945 if (has_inherited) {
39946 DUK_D(
DUK_DPRINT(
"gap in array, conflicting inherited property, abort fast path"));
39947 goto abort_fastpath;
39954 DUK_D(
DUK_DPRINT(
"gap in array, no conflicting inherited property, remain on fast path"));
39955#if defined(DUK_USE_JX)
39976 }
else if (c_bit & c_unbox) {
39990 goto abort_fastpath;
40005 goto restart_match;
40007#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
40008 }
else if (c_bit & c_func) {
40010#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
40011 }
else if (c_bit & c_bufobj) {
40015 }
else if (c_bit & c_abort) {
40017 goto abort_fastpath;
40025 goto emit_undefined;
40041#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
40045 DUK_DD(
DUK_DDPRINT(
"value is a plain buffer and there's an inherited .toJSON, abort fast path"));
40046 goto abort_fastpath;
40050#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
40064#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
40069 goto emit_undefined;
40072 goto emit_undefined;
40081 goto abort_fastpath;
40083#if defined(DUK_USE_FASTINT)
40142 if (duk__json_stringify_fast_value(js_ctx, tv) == 0) {
40160#if defined(DUK_USE_ASSERTIONS)
40168 DUK_DDD(
DUK_DDDPRINT(
"JSON parse start: text=%!T, reviver=%!T, flags=0x%08lx, stack_top=%ld",
40171 (
unsigned long) flags,
40174 duk_memzero(&js_ctx_alloc,
sizeof(js_ctx_alloc));
40176#if defined(DUK_USE_EXPLICIT_NULL_INIT)
40186 js_ctx->
flags = flags;
40187#if defined(DUK_USE_JX)
40190#if defined(DUK_USE_JC)
40193#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
40216 if (js_ctx->
p != js_ctx->
p_end) {
40245 DUK_DDD(
DUK_DDDPRINT(
"JSON parse end: text=%!T, reviver=%!T, flags=0x%08lx, result=%!T, stack_top=%ld",
40248 (
unsigned long) flags,
40272 DUK_DDD(
DUK_DDDPRINT(
"JSON stringify start: value=%!T, replacer=%!T, space=%!T, flags=0x%08lx, stack_top=%ld",
40276 (
unsigned long) flags,
40285 duk_memzero(&js_ctx_alloc,
sizeof(js_ctx_alloc));
40287#if defined(DUK_USE_EXPLICIT_NULL_INIT)
40289 js_ctx->
h_gap = NULL;
40297 js_ctx->
flags = flags;
40300#if defined(DUK_USE_JX)
40303#if defined(DUK_USE_JC)
40306#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
40313#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
40315#if defined(DUK_USE_JX)
40325#if defined(DUK_USE_JX) && defined(DUK_USE_JC)
40328#if defined(DUK_USE_JC)
40339#if defined(DUK_USE_JX) || defined(DUK_USE_JC)
40381 duk_enum(thr, idx_replacer, enum_flags);
40425 static const char spaces[10] = {
40445 if (js_ctx->
h_gap != NULL) {
40451 js_ctx->
h_gap = NULL;
40462#if defined(DUK_USE_JSON_STRINGIFY_FASTPATH)
40493 pcall_rc =
duk_safe_call(thr, duk__json_stringify_fast, (
void *) js_ctx , 1 , 0 );
40502 goto replace_finished;
40510 DUK_D(
DUK_DPRINT(
"fast path failed, serialize using slow path instead"));
40525 "proplist=%!T, gap=%!O, holder=%!T",
40526 (
unsigned long) js_ctx->
flags,
40551 "proplist=%!T, gap=%!O, holder=%!T",
40552 (
unsigned long) js_ctx->
flags,
40563#if defined(DUK_USE_JSON_STRINGIFY_FASTPATH)
40570 "flags=0x%08lx, result=%!T, stack_top=%ld",
40574 (
unsigned long) flags,
40581#if defined(DUK_USE_JSON_BUILTIN)
40604#undef DUK__EMIT_CSTR
40605#undef DUK__EMIT_HSTR
40606#undef DUK__EMIT_STRIDX
40607#undef DUK__JSON_DECSTR_BUFSIZE
40608#undef DUK__JSON_DECSTR_CHUNKSIZE
40609#undef DUK__JSON_ENCSTR_CHUNKSIZE
40610#undef DUK__JSON_MAX_ESC_LEN
40611#undef DUK__JSON_STRINGIFY_BUFSIZE
40613#undef DUK__UNEMIT_1
40620#if defined(DUK_USE_MATH_BUILTIN)
40651 for (i = 0; i < n; i++) {
40678 DUK_ASSERT(du1.
ui[DUK_DBL_IDX_UI0] == 0 || du1.
ui[DUK_DBL_IDX_UI0] == 0x80000000UL);
40679 DUK_ASSERT(du2.
ui[DUK_DBL_IDX_UI0] == 0 || du2.
ui[DUK_DBL_IDX_UI0] == 0x80000000UL);
40682 if ((du1.
ui[DUK_DBL_IDX_UI0] | du2.
ui[DUK_DBL_IDX_UI0]) != 0) {
40706#if defined(DUK_USE_ES6)
40713#if defined(DUK_CBRT)
40715 return DUK_CBRT(x);
40724 return -
DUK_POW(-x, 1.0 / 3.0);
40726 return DUK_POW(x, 1.0 / 3.0);
40732#if defined(DUK_LOG2)
40733 return DUK_LOG2(x);
40740#if defined(DUK_LOG10)
40741 return DUK_LOG10(x);
40748#if defined(DUK_TRUNC)
40749 return DUK_TRUNC(x);
40788 if (x >= -0.5 && x < 0.5) {
40804#if defined(DUK_USE_AVOID_PLATFORM_FUNCPTRS)
40842#if defined(DUK_USE_ATAN2_WORKAROUNDS)
40849 return -2.356194490192345;
40851 return -0.7853981633974483;
40855 return 2.356194490192345;
40857 return 0.7853981633974483;
40876#if defined(DUK_USE_AVOID_PLATFORM_FUNCPTRS)
40879#if defined(DUK_USE_ES6)
40885#if defined(DUK_USE_ES6)
40893#if defined(DUK_USE_AVOID_PLATFORM_FUNCPTRS)
40943#if defined(DUK_USE_ES6)
40969 for (i = 0; i < nargs; i++) {
40982 }
else if (found_nan) {
40998 for (i = 0; i < nargs; i++) {
41000 summand = (t * t) - comp;
41001 prelim = sum + summand;
41002 comp = (prelim - sum) - summand;
41011#if defined(DUK_USE_ES6)
41029#if defined(DUK_USE_ES6)
41034#if defined(DUK_USE_PREFER_SIZE)
41038 for (i = 0, mask = 0x80000000UL; mask != 0; mask >>= 1) {
41050 if (x & 0xffff0000UL) {
41055 if (x & 0x0000ff00UL) {
41060 if (x & 0x000000f0UL) {
41065 if (x & 0x0000000cUL) {
41070 if (x & 0x00000002UL) {
41075 if (x & 0x00000001UL) {
41087#if defined(DUK_USE_ES6)
41089 duk_uint32_t x, y, z;
41111#if defined(DUK_USE_NUMBER_BUILTIN)
41242 goto use_to_string;
41245 if (d >= 1.0e21 || d <= -1.0e21) {
41246 goto use_to_string;
41274 goto use_to_string;
41305 goto use_to_string;
41313 goto use_to_string;
41337#if defined(DUK_USE_ES6)
41385#if defined(DUK_USE_OBJECT_BUILTIN)
41420#if defined(DUK_USE_OBJECT_BUILTIN) && defined(DUK_USE_ES6)
41428 for (idx = 1; idx < nargs; idx++) {
41454#if defined(DUK_USE_OBJECT_BUILTIN) && defined(DUK_USE_ES6)
41462#if defined(DUK_USE_OBJECT_BUILTIN)
41468#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
41499#if defined(DUK_USE_OBJECT_BUILTIN)
41526 for (pass = 0; pass < 2; pass++) {
41572#if defined(DUK_USE_OBJECT_BUILTIN)
41581#if defined(DUK_USE_OBJECT_BUILTIN)
41590 DUK_ASSERT(is_frozen == 0 || is_frozen == 1);
41605#if defined(DUK_USE_OBJECT_BUILTIN)
41619#if defined(DUK_USE_OBJECT_BUILTIN)
41627#if defined(DUK_USE_OBJECT_BUILTIN)
41653#if defined(DUK_USE_OBJECT_BUILTIN)
41659#if defined(DUK_USE_OBJECT_BUILTIN)
41665#if defined(DUK_USE_OBJECT_BUILTIN) || defined(DUK_USE_REFLECT_BUILTIN)
41713 if (proto != NULL) {
41722#if defined(DUK_USE_OBJECT_BUILTIN) || defined(DUK_USE_REFLECT_BUILTIN)
41773 if (h_new_proto == curr_proto) {
41776 goto fail_nonextensible;
41779 if (h_obj == NULL) {
41791 goto fail_nonextensible;
41795 if (h_curr == h_obj) {
41807 return ret_success;
41820#if defined(DUK_USE_OBJECT_BUILTIN) || defined(DUK_USE_REFLECT_BUILTIN)
41877 throw_flag = magic ^ 1U;
41895#if defined(DUK_USE_OBJECT_BUILTIN) || defined(DUK_USE_REFLECT_BUILTIN)
41911#if defined(DUK_USE_OBJECT_BUILTIN) || defined(DUK_USE_REFLECT_BUILTIN)
41934#if defined(DUK_USE_OBJECT_BUILTIN) || defined(DUK_USE_REFLECT_BUILTIN)
41958#if defined(DUK_USE_ES6_PROXY)
41983#if defined(DUK_USE_ES6_PROXY)
42027#if defined(DUK_USE_OBJECT_BUILTIN) || defined(DUK_USE_REFLECT_BUILTIN)
42075#if defined(DUK_USE_ES8)
42132#if defined(DUK_USE_PERFORMANCE_BUILTIN)
42235#if defined(DUK_USE_PROMISE_BUILTIN)
42279#if defined(DUK_USE_ES6_PROXY)
42295 for (i = 0; i < len; i++) {
42362#if defined(DUK_USE_ES6_PROXY)
42381#if defined(DUK_USE_REFLECT_BUILTIN)
42476#if defined(DUK_USE_REGEXP_SUPPORT)
42601 duk_uint8_t buf[8];
42602 duk_uint8_t *p = buf;
42650 if (magic != 16 ) {
42713#if defined(DUK_USE_STRING_BUILTIN)
42736 const duk_uint8_t *p_start, *p_end, *p;
42737 const duk_uint8_t *q_start;
42739 duk_uint8_t firstbyte;
42759 p = p_start + bpos;
42768 firstbyte = q_start[0];
42769 while (p <= p_end && p >= p_start) {
42779 if (
duk_memcmp((
const void *) p, (
const void *) q_start, (
size_t) q_blen) == 0) {
42791 if ((t & 0xc0) != 0x80) {
42796 if ((t & 0xc0) != 0x80) {
42868 for (i = 0; i < n; i++) {
42879 duk_int32_t i32 = 0;
42887#if defined(DUK_USE_NONSTD_STRING_FROMCHARCODE_32BIT)
42912#if defined(DUK_USE_ES6)
43012#if defined(DUK_USE_ES6)
43059 DUK_ASSERT(start_pos >= 0 && start_pos <= len);
43062 if (start_pos > end_pos) {
43064 start_pos = end_pos;
43074#if defined(DUK_USE_SECTION_B)
43098 if (start_pos < 0) {
43099 start_pos = len + start_pos;
43101 DUK_ASSERT(start_pos >= 0 && start_pos <= len);
43110 DUK_ASSERT(start_pos >= 0 && start_pos <= len);
43131 if (start_pos < 0) {
43132 start_pos = len + start_pos;
43139 end_pos = len + end_pos;
43142 DUK_ASSERT(start_pos >= 0 && start_pos <= len);
43145 if (end_pos < start_pos) {
43146 end_pos = start_pos;
43223#if defined(DUK_USE_REGEXP_SUPPORT)
43228 duk_uint32_t match_start_coff, match_start_boff;
43229#if defined(DUK_USE_REGEXP_SUPPORT)
43232 duk_uint32_t prev_match_end_boff;
43233 const duk_uint8_t *r_start, *r_end, *r;
43253#if defined(DUK_USE_REGEXP_SUPPORT)
43267#if defined(DUK_USE_REGEXP_SUPPORT)
43287 prev_match_end_boff = 0;
43315#if defined(DUK_USE_REGEXP_SUPPORT)
43339 duk_uint32_t last_index;
43345 (
long) (last_index + 1)));
43357 const duk_uint8_t *p_start, *p_end, *p;
43358 const duk_uint8_t *q_start;
43362#if defined(DUK_USE_REGEXP_SUPPORT)
43375 if (q_blen > p_blen) {
43382 match_start_coff = 0;
43384 while (p <= p_end) {
43386 if (
duk_memcmp((
const void *) p, (
const void *) q_start, (
size_t) q_blen) == 0) {
43389#if defined(DUK_USE_REGEXP_SUPPORT)
43396 if ((p[0] & 0xc0) != 0x80) {
43397 match_start_coff++;
43416 tmp_sz = (
duk_size_t) (match_start_boff - prev_match_end_boff);
43421 if (is_repl_func) {
43430#if defined(DUK_USE_REGEXP_SUPPORT)
43434 for (idx = 0; idx < match_caps; idx++) {
43460 while (r < r_end) {
43463#if defined(DUK_USE_REGEXP_SUPPORT)
43497 duk_uint32_t match_end_boff;
43514#if defined(DUK_USE_REGEXP_SUPPORT)
43533 captmp = capnum * 10 + (ch3 -
DUK_ASC_0);
43534 if (captmp < match_caps) {
43541 if (capnum > 0 && capnum < match_caps) {
43577#if defined(DUK_USE_REGEXP_SUPPORT)
43607 duk_uint32_t limit;
43608 duk_uint32_t arr_idx;
43609#if defined(DUK_USE_REGEXP_SUPPORT)
43613 duk_uint32_t prev_match_end_coff, prev_match_end_boff;
43614 duk_uint32_t match_start_boff, match_start_coff;
43615 duk_uint32_t match_end_boff, match_end_coff;
43623 limit = 0xffffffffUL;
43647#if defined(DUK_USE_REGEXP_SUPPORT)
43659#if defined(DUK_USE_REGEXP_SUPPORT)
43670 prev_match_end_boff = 0;
43671 prev_match_end_coff = 0;
43685#if defined(DUK_USE_REGEXP_SUPPORT)
43715 if (prev_match_end_boff == match_end_boff) {
43725 const duk_uint8_t *p_start, *p_end, *p;
43726 const duk_uint8_t *q_start;
43731 p = p_start + prev_match_end_boff;
43740 match_start_coff = prev_match_end_coff;
43753 match_start_coff++;
43755 while (p < p_end) {
43756 if ((p[0] & 0xc0) != 0x80) {
43765 while (p <= p_end) {
43768 if (
duk_memcmp((
const void *) p, (
const void *) q_start, (
size_t) q_blen) == 0) {
43774 if ((p[0] & 0xc0) != 0x80) {
43775 match_start_coff++;
43786 match_start_boff = (duk_uint32_t) (p - p_start);
43787 match_end_coff = (duk_uint32_t) (match_start_coff + q_clen);
43788 match_end_boff = (duk_uint32_t) (match_start_boff + q_blen);
43791 if (prev_match_end_boff == match_end_boff) {
43792 prev_match_end_boff++;
43793 prev_match_end_coff++;
43805 DUK_DDD(
DUK_DDDPRINT(
"split; match_start b=%ld,c=%ld, match_end b=%ld,c=%ld, prev_end b=%ld,c=%ld",
43806 (
long) match_start_boff,
43807 (
long) match_start_coff,
43808 (
long) match_end_boff,
43809 (
long) match_end_coff,
43810 (
long) prev_match_end_boff,
43811 (
long) prev_match_end_coff));
43815 (
duk_size_t) (match_start_boff - prev_match_end_boff));
43818 if (arr_idx >= limit) {
43822#if defined(DUK_USE_REGEXP_SUPPORT)
43827 for (i = 1; i < len; i++) {
43832 if (arr_idx >= limit) {
43847 prev_match_end_boff = match_end_boff;
43848 prev_match_end_coff = match_end_coff;
43854 DUK_DDD(
DUK_DDDPRINT(
"split trailer; prev_end b=%ld,c=%ld", (
long) prev_match_end_boff, (
long) prev_match_end_coff));
43872#if defined(DUK_USE_REGEXP_SUPPORT)
43885#if defined(DUK_USE_REGEXP_SUPPORT)
43911#if defined(DUK_USE_REGEXP_SUPPORT)
43950#if defined(DUK_USE_REGEXP_SUPPORT)
43982 prev_last_index = 0;
44002 if (this_index == prev_last_index) {
44007 prev_last_index = this_index;
44015 if (arr_idx == 0) {
44039#if defined(DUK_USE_ES6)
44046 const duk_uint8_t *src;
44050#if !defined(DUK_USE_PREFER_SIZE)
44052 duk_uint8_t *p_end;
44071 if (count_signed < 0) {
44077 result_len =
count * input_blen;
44078 if (
count != 0 && result_len /
count != input_blen) {
44088#if defined(DUK_USE_PREFER_SIZE)
44090 while (
count-- > 0) {
44091 duk_memcpy((
void *) p, (
const void *) src, input_blen);
44099 p_end = p + result_len;
44100 copy_size = input_blen;
44107 (
long) result_len));
44108 if (remain <= copy_size) {
44112 duk_memcpy((
void *) p, (
const void *) src, remain);
44115 duk_memcpy((
void *) p, (
const void *) src, copy_size);
44119 src = (
const duk_uint8_t *) buf;
44168 prefix_len = (h1_len <= h2_len ? h1_len : h2_len);
44172 (size_t) prefix_len);
44177 }
else if (rc > 0) {
44183 if (h1_len > h2_len) {
44186 }
else if (h1_len == h2_len) {
44198#if defined(DUK_USE_ES6)
44232 if (blen_search > blen_target) {
44258 if (off < 0 || off > (
duk_int_t) blen_target) {
44272 if (blen_left >= blen_search) {
44275 if (
duk_memcmp_unsafe((
const void *) p_cmp_start, (
const void *) p_search, (
size_t) blen_search) == 0) {
44286#if defined(DUK_USE_ES6)
44315#if defined(DUK_USE_SYMBOL_BUILTIN)
44322 const duk_uint8_t *desc;
44366 if (desc == NULL) {
44426 if (h_str == NULL) {
44442 const duk_uint8_t *p;
44456 if (p[0] == 0x80) {
44460 }
else if (p[0] == 0x81 || p[0] == 0x82 || p[0] == 0xff) {
44473 if (h_str == NULL) {
44491#if defined(DUK_USE_COROUTINE_SUPPORT)
44533#if defined(DUK_USE_COROUTINE_SUPPORT)
44561 "resume state invalid: callstack should contain at least 2 entries (caller and Duktape.Thread.resume)"));
44581 DUK_DD(
DUK_DDPRINT(
"resume state invalid: target thread must be INACTIVE or YIELDED"));
44623 DUK_D(
DUK_DPRINT(
"refuse Duktape.Thread.resume() when ms_running != 0"));
44636#if defined(DUK_USE_AUGMENT_ERROR_THROW)
44643#if defined(DUK_USE_DEBUG)
44697#if defined(DUK_USE_COROUTINE_SUPPORT)
44720 DUK_DD(
DUK_DDPRINT(
"yield state invalid: current thread must have a resumer"));
44727 "yield state invalid: callstack should contain at least 2 entries (caller and Duktape.Thread.yield)"));
44745 DUK_DD(
DUK_DDPRINT(
"yield state invalid: there must be no yield-preventing calls in current thread callstack "
44746 "(preventcount is %ld)",
44758#if defined(DUK_USE_AUGMENT_ERROR_THROW)
44765#if defined(DUK_USE_DEBUG)
44799#if defined(DUK_USE_COROUTINE_SUPPORT)
44821#if defined(DUK_USE_DEBUG)
44828 if (length > avail) {
44835 fb->offset += copylen;
44838DUK_INTERNAL void duk_fb_put_byte(duk_fixedbuffer *fb, duk_uint8_t x) {
44839 duk_fb_put_bytes(fb, (
const duk_uint8_t *) &x, 1);
44842DUK_INTERNAL void duk_fb_put_cstring(duk_fixedbuffer *fb,
const char *x) {
44846DUK_INTERNAL void duk_fb_sprintf(duk_fixedbuffer *fb,
const char *fmt, ...) {
44858 fb->offset += avail;
44873 duk_debug_format_funcptr(buf,
sizeof(buf), fptr, fptr_size);
44874 buf[
sizeof(buf) - 1] = (
char) 0;
44875 duk_fb_put_cstring(fb, buf);
44879 return (fb->offset >= fb->length);
44939#if defined(DUK_USE_DEBUG)
44948#define DUK__ALLOWED_STANDARD_SPECIFIERS "diouxXeEfFgGaAcsCSpnm"
44951#define DUK__MAX_FORMAT_TAG_LENGTH 32
44954#define DUK__DEEP_DEPTH_LIMIT 8
44957#define DUK__LOOP_STACK_DEPTH 256
44960DUK_LOCAL const char *
const duk__bc_optab[256] = {
44961 "LDREG",
"STREG",
"JUMP",
"LDCONST",
"LDINT",
"LDINTX",
"LDTHIS",
"LDUNDEF",
44962 "LDNULL",
"LDTRUE",
"LDFALSE",
"GETVAR",
"BNOT",
"LNOT",
"UNM",
"UNP",
44963 "EQ_RR",
"EQ_CR",
"EQ_RC",
"EQ_CC",
"NEQ_RR",
"NEQ_CR",
"NEQ_RC",
"NEQ_CC",
44964 "SEQ_RR",
"SEQ_CR",
"SEQ_RC",
"SEQ_CC",
"SNEQ_RR",
"SNEQ_CR",
"SNEQ_RC",
"SNEQ_CC",
44966 "GT_RR",
"GT_CR",
"GT_RC",
"GT_CC",
"GE_RR",
"GE_CR",
"GE_RC",
"GE_CC",
44967 "LT_RR",
"LT_CR",
"LT_RC",
"LT_CC",
"LE_RR",
"LE_CR",
"LE_RC",
"LE_CC",
44968 "IFTRUE_R",
"IFTRUE_C",
"IFFALSE_R",
"IFFALSE_C",
"ADD_RR",
"ADD_CR",
"ADD_RC",
"ADD_CC",
44969 "SUB_RR",
"SUB_CR",
"SUB_RC",
"SUB_CC",
"MUL_RR",
"MUL_CR",
"MUL_RC",
"MUL_CC",
44971 "DIV_RR",
"DIV_CR",
"DIV_RC",
"DIV_CC",
"MOD_RR",
"MOD_CR",
"MOD_RC",
"MOD_CC",
44972 "EXP_RR",
"EXP_CR",
"EXP_RC",
"EXP_CC",
"BAND_RR",
"BAND_CR",
"BAND_RC",
"BAND_CC",
44973 "BOR_RR",
"BOR_CR",
"BOR_RC",
"BOR_CC",
"BXOR_RR",
"BXOR_CR",
"BXOR_RC",
"BXOR_CC",
44974 "BASL_RR",
"BASL_CR",
"BASL_RC",
"BASL_CC",
"BLSR_RR",
"BLSR_CR",
"BLSR_RC",
"BLSR_CC",
44976 "BASR_RR",
"BASR_CR",
"BASR_RC",
"BASR_CC",
"INSTOF_RR",
"INSTOF_CR",
"INSTOF_RC",
"INSTOF_CC",
44977 "IN_RR",
"IN_CR",
"IN_RC",
"IN_CC",
"GETPROP_RR",
"GETPROP_CR",
"GETPROP_RC",
"GETPROP_CC",
44978 "PUTPROP_RR",
"PUTPROP_CR",
"PUTPROP_RC",
"PUTPROP_CC",
"DELPROP_RR",
"DELPROP_CR",
"DELPROP_RC",
"DELPROP_CC",
44979 "PREINCR",
"PREDECR",
"POSTINCR",
"POSTDECR",
"PREINCV",
"PREDECV",
"POSTINCV",
"POSTDECV",
44981 "PREINCP_RR",
"PREINCP_CR",
"PREINCP_RC",
"PREINCP_CC",
"PREDECP_RR",
"PREDECP_CR",
"PREDECP_RC",
"PREDECP_CC",
44982 "POSTINCP_RR",
"POSTINCP_CR",
"POSTINCP_RC",
"POSTINCP_CC",
"POSTDECP_RR",
"POSTDECP_CR",
"POSTDECP_RC",
"POSTDECP_CC",
44983 "DECLVAR_RR",
"DECLVAR_CR",
"DECLVAR_RC",
"DECLVAR_CC",
"REGEXP_RR",
"REGEXP_RC",
"REGEXP_CR",
"REGEXP_CC",
44984 "CLOSURE",
"TYPEOF",
"TYPEOFID",
"PUTVAR",
"DELVAR",
"RETREG",
"RETUNDEF",
"RETCONST",
44986 "RETCONSTN",
"LABEL",
"ENDLABEL",
"BREAK",
"CONTINUE",
"TRYCATCH",
"ENDTRY",
"ENDCATCH",
44987 "ENDFIN",
"THROW",
"INVLHS",
"CSREG",
"CSVAR_RR",
"CSVAR_CR",
"CSVAR_RC",
"CSVAR_CC",
44988 "CALL0",
"CALL1",
"CALL2",
"CALL3",
"CALL4",
"CALL5",
"CALL6",
"CALL7",
44989 "CALL8",
"CALL9",
"CALL10",
"CALL11",
"CALL12",
"CALL13",
"CALL14",
"CALL15",
44991 "NEWOBJ",
"NEWARR",
"MPUTOBJ",
"MPUTOBJI",
"INITSET",
"INITGET",
"MPUTARR",
"MPUTARRI",
44992 "SETALEN",
"INITENUM",
"NEXTENUM",
"NEWTARGET",
"DEBUGGER",
"NOP",
"INVALID",
"UNUSED207",
44993 "GETPROPC_RR",
"GETPROPC_CR",
"GETPROPC_RC",
"GETPROPC_CC",
"UNUSED212",
"UNUSED213",
"UNUSED214",
"UNUSED215",
44994 "UNUSED216",
"UNUSED217",
"UNUSED218",
"UNUSED219",
"UNUSED220",
"UNUSED221",
"UNUSED222",
"UNUSED223",
44996 "UNUSED224",
"UNUSED225",
"UNUSED226",
"UNUSED227",
"UNUSED228",
"UNUSED229",
"UNUSED230",
"UNUSED231",
44997 "UNUSED232",
"UNUSED233",
"UNUSED234",
"UNUSED235",
"UNUSED236",
"UNUSED237",
"UNUSED238",
"UNUSED239",
44998 "UNUSED240",
"UNUSED241",
"UNUSED242",
"UNUSED243",
"UNUSED244",
"UNUSED245",
"UNUSED246",
"UNUSED247",
44999 "UNUSED248",
"UNUSED249",
"UNUSED250",
"UNUSED251",
"UNUSED252",
"UNUSED253",
"UNUSED254",
"UNUSED255"
45002typedef struct duk__dprint_state duk__dprint_state;
45003struct duk__dprint_state {
45004 duk_fixedbuffer *fb;
45035 duk_fixedbuffer *fb = st->fb;
45038 duk_fb_sprintf(fb,
"(%p)", (
void *) h);
45048 for (i = 0; i < (
duk_size_t)
sizeof(*h); i++) {
45049 duk_fb_sprintf(fb,
"%02lx", (
unsigned long) ((duk_uint8_t *) h)[i]);
45054#if defined(DUK_USE_REFERENCE_COUNTING)
45057 "[h_next=%p,h_prev=%p,h_refcount=%lu,h_flags=%08lx,type=%ld,"
45058 "reachable=%ld,temproot=%ld,finalizable=%ld,finalized=%ld]",
45072 "[h_next=%p,h_flags=%08lx,type=%ld,reachable=%ld,temproot=%ld,finalizable=%ld,finalized=%ld]",
45085 duk_fixedbuffer *fb = st->fb;
45088 duk_fb_sprintf(fb,
"(%p)", (
void *) h);
45098 for (i = 0; i < (
duk_size_t)
sizeof(*h); i++) {
45099 duk_fb_sprintf(fb,
"%02lx", (
unsigned long) ((duk_uint8_t *) h)[i]);
45104#if defined(DUK_USE_REFERENCE_COUNTING)
45107 "[h_refcount=%lu,h_flags=%08lx,type=%ld,reachable=%ld,temproot=%ld,finalizable=%ld,finalized=%ld]",
45119 "[h_flags=%08lx,type=%ld,reachable=%ld,temproot=%ld,finalizable=%ld,finalized=%ld]",
45131 duk_fixedbuffer *fb = st->fb;
45132 const duk_uint8_t *p;
45133 const duk_uint8_t *p_end;
45137 if (duk_fb_is_full(fb)) {
45141 duk__print_shared_heaphdr_string(st, &h->
hdr);
45144 duk_fb_put_cstring(fb,
"NULL");
45162 while (p < p_end) {
45163 duk_uint8_t ch = *p++;
45167 duk_fb_sprintf(fb,
"\\\\");
45168 }
else if (ch ==
'"') {
45169 duk_fb_sprintf(fb,
"\\\"");
45170 }
else if (ch >= 0x20 && ch <= 0x7e) {
45171 duk_fb_put_byte(fb, ch);
45172 }
else if (ch == 0x82 && !quotes) {
45178 duk_fb_sprintf(fb,
"\\x%02lx", (
unsigned long) ch);
45184#if defined(DUK_USE_REFERENCE_COUNTING)
45190#define DUK__COMMA() \
45195 duk_fb_put_byte(fb, (duk_uint8_t) DUK_ASC_COMMA); \
45200 duk_fixedbuffer *fb = st->fb;
45205 const char *brace1 =
"{";
45206 const char *brace2 =
"}";
45209 if (duk_fb_is_full(fb)) {
45213 duk__print_shared_heaphdr(st, &h->
hdr);
45221 duk_fb_put_cstring(fb,
"NULL");
45225 if (st->depth >= st->depth_limit) {
45226 const char *subtype =
"generic";
45229 subtype =
"compfunc";
45231 subtype =
"natfunc";
45233 subtype =
"thread";
45235 subtype =
"bufobj";
45239 duk_fb_sprintf(fb,
"%sobject/%s %p%s", (
const char *) brace1, subtype, (
void *) h, (
const char *) brace2);
45244 if (st->loop_stack[i] == h) {
45245 duk_fb_sprintf(fb,
"%sLOOP:%p%s", (
const char *) brace1, (
void *) h, (
const char *) brace2);
45253 if (st->loop_stack_index >= st->loop_stack_limit) {
45254 duk_fb_sprintf(fb,
"%sOUT-OF-LOOP-STACK%s", (
const char *) brace1, (
const char *) brace2);
45257 st->loop_stack[st->loop_stack_index++] = h;
45258 pushed_loopstack = 1;
45265 duk_fb_put_cstring(fb, brace1);
45268 duk_uint32_t a_limit;
45271 if (st->internal) {
45278 while (a_limit > 0) {
45287 for (i = 0; i < a_limit; i++) {
45290 duk__print_tval(st, tv);
45301 duk__print_hstring(st, key, 0);
45310 duk__print_tval(st, tv);
45317 if (st->internal) {
45320 duk_fb_sprintf(fb,
"__array:true");
45324 duk_fb_sprintf(fb,
"__extensible:true");
45328 duk_fb_sprintf(fb,
"__constructable:true");
45332 duk_fb_sprintf(fb,
"__boundfunc:true");
45336 duk_fb_sprintf(fb,
"__compfunc:true");
45340 duk_fb_sprintf(fb,
"__natfunc:true");
45344 duk_fb_sprintf(fb,
"__bufobj:true");
45348 duk_fb_sprintf(fb,
"__thread:true");
45352 duk_fb_sprintf(fb,
"__array_part:true");
45356 duk_fb_sprintf(fb,
"__strict:true");
45360 duk_fb_sprintf(fb,
"__notail:true");
45364 duk_fb_sprintf(fb,
"__newenv:true");
45368 duk_fb_sprintf(fb,
"__namebinding:true");
45372 duk_fb_sprintf(fb,
"__createargs:true");
45376 duk_fb_sprintf(fb,
"__exotic_array:true");
45380 duk_fb_sprintf(fb,
"__exotic_stringobj:true");
45384 duk_fb_sprintf(fb,
"__exotic_arguments:true");
45388 duk_fb_sprintf(fb,
"__exotic_bufobj:true");
45392 duk_fb_sprintf(fb,
"__exotic_proxyobj:true");
45399 duk_fb_sprintf(fb,
"__length:%ld", (
long) a->
length);
45405 duk_fb_put_cstring(fb,
"__data:");
45408 duk_fb_put_cstring(fb,
"__lexenv:");
45411 duk_fb_put_cstring(fb,
"__varenv:");
45414 duk_fb_sprintf(fb,
"__nregs:%ld", (
long) f->
nregs);
45416 duk_fb_sprintf(fb,
"__nargs:%ld", (
long) f->
nargs);
45417#if defined(DUK_USE_DEBUGGER_SUPPORT)
45419 duk_fb_sprintf(fb,
"__start_line:%ld", (
long) f->start_line);
45421 duk_fb_sprintf(fb,
"__end_line:%ld", (
long) f->end_line);
45424 duk_fb_put_cstring(fb,
"__data:");
45429 duk_fb_sprintf(fb,
"__func:");
45430 duk_fb_put_funcptr(fb, (duk_uint8_t *) &f->
func,
sizeof(f->
func));
45432 duk_fb_sprintf(fb,
"__nargs:%ld", (
long) f->
nargs);
45434 duk_fb_sprintf(fb,
"__magic:%ld", (
long) f->
magic);
45438 duk_fb_sprintf(fb,
"__thread:");
45441 duk_fb_sprintf(fb,
"__varmap:");
45444 duk_fb_sprintf(fb,
"__regbase_byteoff:%ld", (
long) e->
regbase_byteoff);
45448 duk_fb_sprintf(fb,
"__target:");
45451 duk_fb_sprintf(fb,
"__has_this:%ld", (
long) e->
has_this);
45452#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
45456 duk_fb_sprintf(fb,
"__buf:");
45459 duk_fb_sprintf(fb,
"__buf_prop:");
45462 duk_fb_sprintf(fb,
"__offset:%ld", (
long) b->
offset);
45464 duk_fb_sprintf(fb,
"__length:%ld", (
long) b->
length);
45466 duk_fb_sprintf(fb,
"__shift:%ld", (
long) b->
shift);
45468 duk_fb_sprintf(fb,
"__elemtype:%ld", (
long) b->
elem_type);
45473 duk_fb_sprintf(fb,
"__target:");
45474 duk__print_hobject(st, p->
target);
45476 duk_fb_sprintf(fb,
"__handler:");
45477 duk__print_hobject(st, p->
handler);
45481 duk_fb_sprintf(fb,
"__ptr_curr_pc:%p", (
void *) t->
ptr_curr_pc);
45483 duk_fb_sprintf(fb,
"__heap:%p", (
void *) t->
heap);
45485 duk_fb_sprintf(fb,
"__strict:%ld", (
long) t->
strict);
45487 duk_fb_sprintf(fb,
"__state:%ld", (
long) t->
state);
45489 duk_fb_sprintf(fb,
"__unused1:%ld", (
long) t->
unused1);
45491 duk_fb_sprintf(fb,
"__unused2:%ld", (
long) t->
unused2);
45493 duk_fb_sprintf(fb,
"__valstack:%p", (
void *) t->
valstack);
45498 "__valstack_alloc_end:%p/%ld",
45503 "__valstack_bottom:%p/%ld",
45509 duk_fb_sprintf(fb,
"__callstack_curr:%p", (
void *) t->
callstack_curr);
45511 duk_fb_sprintf(fb,
"__callstack_top:%ld", (
long) t->
callstack_top);
45515 duk_fb_sprintf(fb,
"__resumer:");
45518 duk_fb_sprintf(fb,
"__compile_ctx:%p", (
void *) t->
compile_ctx);
45519#if defined(DUK_USE_INTERRUPT_COUNTER)
45523 duk_fb_sprintf(fb,
"__interrupt_init:%ld", (
long) t->
interrupt_init);
45528#if defined(DUK_USE_REFERENCE_COUNTING)
45529 if (st->internal) {
45534 if (st->internal) {
45540 duk_fb_sprintf(fb,
"__heapptr:%p", (
void *) h);
45544 if (st->follow_proto) {
45546 duk_fb_put_cstring(fb,
"__prototype:");
45554 duk_fb_put_cstring(fb, brace2);
45556#if defined(DUK_USE_HOBJECT_HASH_PART)
45565 duk_fb_sprintf(fb,
"u");
45567 duk_fb_sprintf(fb,
"d");
45569 duk_fb_sprintf(fb,
"%ld", (
long) h_idx);
45578 if (pushed_loopstack) {
45579 st->loop_stack_index--;
45580 st->loop_stack[st->loop_stack_index] = NULL;
45585 duk_fixedbuffer *fb = st->fb;
45589 if (duk_fb_is_full(fb)) {
45596 duk_fb_put_cstring(fb,
"NULL");
45604 "buffer:external:%p:%ld",
45610 "buffer:dynamic:%p:%ld",
45618#if defined(DUK_USE_REFERENCE_COUNTING)
45623 duk_fb_sprintf(fb,
"=[");
45626 for (i = 0; i < n; i++) {
45627 duk_fb_sprintf(fb,
"%02lx", (
unsigned long) p[i]);
45629 duk_fb_sprintf(fb,
"]");
45634 duk_fixedbuffer *fb = st->fb;
45636 if (duk_fb_is_full(fb)) {
45641 duk_fb_put_cstring(fb,
"NULL");
45662 duk_fixedbuffer *fb = st->fb;
45664 if (duk_fb_is_full(fb)) {
45671 duk_fb_sprintf(fb,
"(%p)", (
void *) tv);
45675 duk_fb_put_cstring(fb,
"NULL");
45682 for (i = 0; i < (
duk_size_t)
sizeof(*tv); i++) {
45683 duk_fb_sprintf(fb,
"%02lx", (
unsigned long) ((duk_uint8_t *) tv)[i]);
45693 duk_fb_put_cstring(fb,
"undefined");
45697 duk_fb_put_cstring(fb,
"unused");
45701 duk_fb_put_cstring(fb,
"null");
45730 duk_fb_sprintf(fb,
"lightfunc:");
45731 duk_fb_put_funcptr(fb, (duk_uint8_t *) &func,
sizeof(func));
45732 duk_fb_sprintf(fb,
":%04lx", (
long) lf_flags);
45735#if defined(DUK_USE_FASTINT)
45756 duk_fixedbuffer *fb = st->fb;
45758 const char *op_name;
45761 op_name = duk__bc_optab[op];
45770 "%s %ld (to pc%c%ld)",
45771 (
const char *) op_name,
45773 (
int) (diff2 >= 0 ?
'+' :
'-'),
45774 (
long) (diff2 >= 0 ? diff2 : -diff2));
45777 "%s %ld, %ld, %ld",
45778 (
const char *) op_name,
45786 duk_fixedbuffer *fb = st->fb;
45789 duk_fb_sprintf(fb,
"?(%ld)", (
long) opcode);
45791 duk_fb_sprintf(fb,
"%s", (
const char *) duk__bc_optab[opcode]);
45796 duk_fixedbuffer *fb = st->fb;
45798 if (duk_fb_is_full(fb)) {
45803 duk_fb_put_cstring(fb,
"NULL");
45808 "[catcher ptr=%p parent=%p varname=%p pc_base=%p, idx_base=%ld, flags=0x%08lx]",
45810 (
void *) cat->parent,
45811 (
void *) cat->h_varname,
45812 (
void *) cat->pc_base,
45813 (
long) cat->idx_base,
45814 (
unsigned long) cat->flags);
45818 duk_fixedbuffer *fb = st->fb;
45820 if (duk_fb_is_full(fb)) {
45825 duk_fb_put_cstring(fb,
"NULL");
45832 "[activation ptr=%p tv_func=<omit> func=%p parent=%p var_env=%p lex_env=%p cat=%p curr_pc=%p "
45833 "bottom_byteoff=%ld retval_byteoff=%ld reserve_byteoff=%ld flags=%ld]",
45835 (
void *) act->func,
45836 (
void *) act->parent,
45837 (
void *) act->var_env,
45838 (
void *) act->lex_env,
45840 (
void *) act->curr_pc,
45841 (
long) act->bottom_byteoff,
45842 (
long) act->retval_byteoff,
45843 (
long) act->reserve_byteoff,
45844 (
long) act->flags);
45848 duk_fixedbuffer fb;
45849 const char *p = format;
45854 fb.buffer = (duk_uint8_t *) str;
45859 while (p < p_end) {
45861 const char *p_begfmt = NULL;
45864 duk__dprint_state st;
45867 duk_fb_put_byte(&fb, (duk_uint8_t) ch);
45881 st.depth_limit = 1;
45882 st.loop_stack_index = 0;
45883 st.loop_stack_limit = DUK__LOOP_STACK_DEPTH;
45886 while (p < p_end) {
45896 got_exclamation = 1;
45900 st.depth_limit = DUK__DEEP_DEPTH_LIMIT;
45902 st.follow_proto = 1;
45915 if (st.pointer && !st.heavy) {
45916 duk_fb_sprintf(&fb,
"(%p)", (
void *) t);
45918 duk__print_tval(&st, t);
45922 if (st.pointer && !st.heavy) {
45923 duk_fb_sprintf(&fb,
"(%p)", (
void *) t);
45925 duk__print_heaphdr(&st, t);
45929 duk__print_instr(&st, t);
45932 long t = va_arg(ap,
long);
45937 duk__print_catcher(&st, t);
45941 duk__print_activation(&st, t);
45943 }
else if (!got_exclamation && strchr(DUK__ALLOWED_STANDARD_SPECIFIERS, (
int) ch)) {
45944 char fmtbuf[DUK__MAX_FORMAT_TAG_LENGTH];
45949 if (fmtlen >=
sizeof(fmtbuf)) {
45962 double arg = va_arg(ap,
double);
45963 duk_fb_sprintf(&fb, fmtbuf, arg);
45966 long arg = va_arg(ap,
long);
45967 duk_fb_sprintf(&fb, fmtbuf, arg);
45970 int arg = va_arg(ap,
int);
45971 duk_fb_sprintf(&fb, fmtbuf, arg);
45974 unsigned long arg = va_arg(ap,
unsigned long);
45975 duk_fb_sprintf(&fb, fmtbuf, arg);
45978 unsigned int arg = va_arg(ap,
unsigned int);
45979 duk_fb_sprintf(&fb, fmtbuf, arg);
45982 unsigned long arg = va_arg(ap,
unsigned long);
45983 duk_fb_sprintf(&fb, fmtbuf, arg);
45986 unsigned int arg = va_arg(ap,
unsigned int);
45987 duk_fb_sprintf(&fb, fmtbuf, arg);
45990 const char *arg = va_arg(ap,
const char *);
45995 duk_fb_sprintf(&fb,
"NULL");
45997 duk_fb_sprintf(&fb, fmtbuf, arg);
46001 void *arg = va_arg(ap,
void *);
46006 duk_fb_sprintf(&fb,
"NULL");
46008 duk_fb_sprintf(&fb, fmtbuf, arg);
46012 int arg = va_arg(ap,
int);
46013 duk_fb_sprintf(&fb, fmtbuf, arg);
46016 duk_fb_sprintf(&fb,
"INVALID-FORMAT(%s)", (
const char *) fmtbuf);
46027 duk_fb_put_cstring(&fb,
"FMTERR");
46032 duk_fb_put_byte(&fb, (duk_uint8_t) 0);
46042 va_start(ap, format);
46043 retval = duk_debug_vsnprintf(str, size, format, ap);
46056 duk_uint8_t *p = (duk_uint8_t *) buf;
46057 duk_uint8_t *p_end = (duk_uint8_t *) (buf + buf_size - 1);
46062 for (i = 0; i < fptr_size; i++) {
46070#if defined(DUK_USE_INTEGER_BE)
46073 ch = fptr[fptr_size - 1 - i];
46082#undef DUK__ALLOWED_STANDARD_SPECIFIERS
46084#undef DUK__DEEP_DEPTH_LIMIT
46085#undef DUK__LOOP_STACK_DEPTH
46086#undef DUK__MAX_FORMAT_TAG_LENGTH
46093#if defined(DUK_USE_DEBUGGER_SUPPORT)
46099#if defined(DUK_USE_ASSERTIONS)
46100#define DUK__DBG_TPORT_ENTER() \
46102 DUK_ASSERT(heap->dbg_calling_transport == 0); \
46103 heap->dbg_calling_transport = 1; \
46105#define DUK__DBG_TPORT_EXIT() \
46107 DUK_ASSERT(heap->dbg_calling_transport == 1); \
46108 heap->dbg_calling_transport = 0; \
46111#define DUK__DBG_TPORT_ENTER() \
46114#define DUK__DBG_TPORT_EXIT() \
46136#define DUK__SET_CONN_BROKEN(thr, reason) \
46139 duk__debug_do_detach1((thr)->heap, (reason)); \
46151 if (heap->dbg_detaching) {
46156 DUK_D(
DUK_DPRINT(
"debugger transport detaching, marking transport broken"));
46158 heap->dbg_detaching = 1;
46160 if (heap->dbg_write_cb != NULL) {
46167 duk_debug_write_int(thr, reason);
46168 duk_debug_write_eom(thr);
46171 heap->dbg_read_cb = NULL;
46172 heap->dbg_write_cb = NULL;
46173 heap->dbg_peek_cb = NULL;
46174 heap->dbg_read_flush_cb = NULL;
46175 heap->dbg_write_flush_cb = NULL;
46176 heap->dbg_request_cb = NULL;
46180 heap->dbg_state_dirty = 0;
46181 heap->dbg_force_restart = 0;
46182 heap->dbg_pause_flags = 0;
46183 heap->dbg_pause_act = NULL;
46184 heap->dbg_pause_startline = 0;
46185 heap->dbg_have_next_byte = 0;
46186 duk_debug_clear_paused(heap);
46187 heap->dbg_state_dirty = 0;
46201 void *detached_udata;
46212 detached_cb = heap->dbg_detached_cb;
46213 detached_udata = heap->dbg_udata;
46214 heap->dbg_detached_cb = NULL;
46215 heap->dbg_udata = NULL;
46222 DUK_D(
DUK_DPRINT(
"detached during message loop, delayed call to detached_cb"));
46223 detached_cb(thr, detached_udata);
46226 heap->dbg_detaching = 0;
46230 duk__debug_do_detach1(heap, 0);
46231 duk__debug_do_detach2(heap);
46245 DUK_D(
DUK_DPRINT(
"transport read/write error, NULL all callbacks expected detached"));
46246 heap->dbg_read_cb = NULL;
46247 heap->dbg_write_cb = NULL;
46248 heap->dbg_peek_cb = NULL;
46249 heap->dbg_read_flush_cb = NULL;
46250 heap->dbg_write_flush_cb = NULL;
46251 heap->dbg_request_cb = NULL;
46262 line = duk_debug_curr_line(thr);
46268 DUK_D(
DUK_DPRINT(
"no line info for current activation, disable line-based pause flags: 0x%08lx -> 0x%08lx",
46269 (
long) pause_flags,
46270 (
long) updated_flags));
46271 pause_flags = updated_flags;
46274 heap->dbg_pause_flags = pause_flags;
46276 heap->dbg_pause_startline = (duk_uint32_t)
line;
46277 heap->dbg_state_dirty = 1;
46279 DUK_D(
DUK_DPRINT(
"set state for automatic pause triggers, flags=0x%08lx, act=%p, startline=%ld",
46280 (
long) heap->dbg_pause_flags,
46281 (
void *) heap->dbg_pause_act,
46282 (
long) heap->dbg_pause_startline));
46297 if (heap->dbg_read_cb == NULL) {
46298 DUK_D(
DUK_DPRINT(
"attempt to peek in detached state, return zero (= no data)"));
46301 if (heap->dbg_peek_cb == NULL) {
46306 DUK__DBG_TPORT_ENTER();
46307 ret = (
duk_bool_t) (heap->dbg_peek_cb(heap->dbg_udata) > 0);
46308 DUK__DBG_TPORT_EXIT();
46319 if (heap->dbg_read_cb == NULL) {
46320 DUK_D(
DUK_DPRINT(
"attempt to read flush in detached state, ignore"));
46323 if (heap->dbg_read_flush_cb == NULL) {
46328 DUK__DBG_TPORT_ENTER();
46329 heap->dbg_read_flush_cb(heap->dbg_udata);
46330 DUK__DBG_TPORT_EXIT();
46340 if (heap->dbg_read_cb == NULL) {
46341 DUK_D(
DUK_DPRINT(
"attempt to write flush in detached state, ignore"));
46344 if (heap->dbg_write_flush_cb == NULL) {
46349 DUK__DBG_TPORT_ENTER();
46350 heap->dbg_write_flush_cb(heap->dbg_udata);
46351 DUK__DBG_TPORT_EXIT();
46360 duk_uint8_t dummy[64];
46365 while (length > 0) {
46366 now = (length >
sizeof(dummy) ?
sizeof(dummy) : length);
46367 duk_debug_read_bytes(thr, dummy, now);
46375 (void) duk_debug_read_byte(thr);
46391 x = duk_debug_read_byte(thr);
46392 thr->
heap->dbg_have_next_byte = 1;
46393 thr->
heap->dbg_next_byte = x;
46409 if (heap->dbg_read_cb == NULL) {
46410 DUK_D(
DUK_DPRINT(
"attempt to read %ld bytes in detached state, return zero data", (
long) length));
46416 if (length >= 1 && heap->dbg_have_next_byte) {
46417 heap->dbg_have_next_byte = 0;
46418 *p++ = heap->dbg_next_byte;
46427#if defined(DUK_USE_DEBUGGER_TRANSPORT_TORTURE)
46430 DUK__DBG_TPORT_ENTER();
46431 got = heap->dbg_read_cb(heap->dbg_udata, (
char *) p, left);
46432 DUK__DBG_TPORT_EXIT();
46434 if (got == 0 || got > left) {
46436 duk__debug_null_most_callbacks(thr);
46437 DUK__SET_CONN_BROKEN(thr, 1);
46452 duk_debug_read_bytes(thr, &x, 1);
46457 duk_uint8_t buf[4];
46461 duk_debug_read_bytes(thr, buf, 4);
46462 return ((duk_uint32_t) buf[0] << 24) | ((duk_uint32_t) buf[1] << 16) | ((duk_uint32_t) buf[2] << 8) | (duk_uint32_t) buf[3];
46466 return (duk_int32_t) duk__debug_read_uint32_raw(thr);
46470 duk_uint8_t buf[2];
46474 duk_debug_read_bytes(thr, buf, 2);
46475 return ((duk_uint16_t) buf[0] << 8) | (duk_uint16_t) buf[1];
46484 x = duk_debug_read_byte(thr);
46486 t = duk_debug_read_byte(thr);
46487 return (duk_int32_t) (((x - 0xc0) << 8) + t);
46488 }
else if (x >= 0x80) {
46489 return (duk_int32_t) (x - 0x80);
46491 return (duk_int32_t) duk__debug_read_uint32_raw(thr);
46495 DUK__SET_CONN_BROKEN(thr, 1);
46500 duk_uint8_t buf[31];
46503 if (len <=
sizeof(buf)) {
46504 duk_debug_read_bytes(thr, buf, (
duk_size_t) len);
46509 duk_debug_read_bytes(thr, p, (
duk_size_t) len);
46522 x = duk_debug_read_byte(thr);
46523 if (x >= 0x60 && x <= 0x7f) {
46525 len = (duk_uint32_t) (x - 0x60);
46527 len = (duk_uint32_t) duk__debug_read_uint16_raw(thr);
46529 len = (duk_uint32_t) duk__debug_read_uint32_raw(thr);
46534 return duk__debug_read_hstring_raw(thr, len);
46538 DUK__SET_CONN_BROKEN(thr, 1);
46548 duk_debug_read_bytes(thr, p, (
duk_size_t) len);
46559 x = duk_debug_read_byte(thr);
46560 if (x !=
sizeof(pu)) {
46563 duk_debug_read_bytes(thr, (duk_uint8_t *) &pu.p,
sizeof(pu));
46564#if defined(DUK_USE_INTEGER_LE)
46565 duk_byteswap_bytes((duk_uint8_t *) pu.b,
sizeof(pu));
46567 return (
void *) pu.p;
46570 DUK_D(
DUK_DPRINT(
"debug connection error: failed to decode pointer"));
46571 DUK__SET_CONN_BROKEN(thr, 1);
46572 return (
void *) NULL;
46579 duk_debug_read_bytes(thr, (duk_uint8_t *) du.
uc,
sizeof(du.
uc));
46590 x = duk_debug_read_byte(thr);
46595 return (
duk_heaphdr *) duk__debug_read_pointer_raw(thr);
46598 DUK_D(
DUK_DPRINT(
"debug connection error: failed to decode heapptr"));
46599 DUK__SET_CONN_BROKEN(thr, 1);
46609 x = duk_debug_read_byte(thr);
46618 duk_debug_skip_byte(thr);
46625 return (
duk_heaphdr *) duk__debug_read_pointer_raw(thr);
46628 DUK_D(
DUK_DPRINT(
"debug connection error: failed to decode any pointer (object, pointer, heapptr)"));
46629 DUK__SET_CONN_BROKEN(thr, 1);
46640 x = duk_debug_read_byte(thr);
46644 t = (t << 8) + duk_debug_read_byte(thr);
46653 len = (duk_uint32_t) (x - 0x60);
46654 duk__debug_read_hstring_raw(thr, len);
46660 duk_int32_t i = duk__debug_read_int32_raw(thr);
46665 len = duk__debug_read_uint32_raw(thr);
46666 duk__debug_read_hstring_raw(thr, len);
46670 len = duk__debug_read_uint16_raw(thr);
46671 duk__debug_read_hstring_raw(thr, len);
46675 len = duk__debug_read_uint32_raw(thr);
46676 duk__debug_read_hbuffer_raw(thr, len);
46680 len = duk__debug_read_uint16_raw(thr);
46681 duk__debug_read_hbuffer_raw(thr, len);
46702 d = duk__debug_read_double_raw(thr);
46708 duk_debug_skip_byte(thr);
46709 h = (
duk_heaphdr *) duk__debug_read_pointer_raw(thr);
46715 ptr = duk__debug_read_pointer_raw(thr);
46729 h = (
duk_heaphdr *) duk__debug_read_pointer_raw(thr);
46743 DUK__SET_CONN_BROKEN(thr, 1);
46754 const duk_uint8_t *p;
46763 if (heap->dbg_write_cb == NULL) {
46764 DUK_D(
DUK_DPRINT(
"attempt to write %ld bytes in detached state, ignore", (
long) length));
46783#if defined(DUK_USE_DEBUGGER_TRANSPORT_TORTURE)
46786 DUK__DBG_TPORT_ENTER();
46787 got = heap->dbg_write_cb(heap->dbg_udata, (
const char *) p, left);
46788 DUK__DBG_TPORT_EXIT();
46790 if (got == 0 || got > left) {
46791 duk__debug_null_most_callbacks(thr);
46793 DUK__SET_CONN_BROKEN(thr, 1);
46801 duk_debug_write_bytes(thr, (
const duk_uint8_t *) &x, 1);
46812#if defined(DUK_USE_DEBUGGER_INSPECT)
46824 duk_uint8_t buf[5];
46829 if (x >= 0 && x <= 0x3fL) {
46830 buf[0] = (duk_uint8_t) (0x80 + x);
46832 }
else if (x >= 0 && x <= 0x3fffL) {
46833 buf[0] = (duk_uint8_t) (0xc0 + (x >> 8));
46834 buf[1] = (duk_uint8_t) (x & 0xff);
46839 buf[1] = (duk_uint8_t) ((x >> 24) & 0xff);
46840 buf[2] = (duk_uint8_t) ((x >> 16) & 0xff);
46841 buf[3] = (duk_uint8_t) ((x >> 8) & 0xff);
46842 buf[4] = (duk_uint8_t) (x & 0xff);
46845 duk_debug_write_bytes(thr, buf, len);
46857 if (x >= 0x80000000UL) {
46858 DUK_D(
DUK_DPRINT(
"writing unsigned integer 0x%08lx as signed integer", (
long) x));
46860 duk_debug_write_int(thr, (duk_int32_t) x);
46864 duk_uint8_t buf[5];
46872 buf[0] = (duk_uint8_t) (0x60 + length);
46874 }
else if (length <= 0xffffUL) {
46875 buf[0] = (duk_uint8_t) (marker_base + 1);
46876 buf[1] = (duk_uint8_t) (length >> 8);
46877 buf[2] = (duk_uint8_t) (length & 0xff);
46880 buf[0] = (duk_uint8_t) marker_base;
46881 buf[1] = (duk_uint8_t) (length >> 24);
46882 buf[2] = (duk_uint8_t) ((length >> 16) & 0xff);
46883 buf[3] = (duk_uint8_t) ((length >> 8) & 0xff);
46884 buf[4] = (duk_uint8_t) (length & 0xff);
46888 duk_debug_write_bytes(thr, (
const duk_uint8_t *) buf, buflen);
46889 duk_debug_write_bytes(thr, (
const duk_uint8_t *) data, length);
46899 duk_debug_write_string(thr, data, data ?
DUK_STRLEN(data) : 0);
46906 duk_debug_write_string(thr,
46912 duk_debug_write_hstring(thr, duk_safe_to_hstring(thr, -1));
46922 duk_debug_write_buffer(thr,
46928 duk_uint8_t buf[2];
46932 DUK_ASSERT(
sizeof(ptr) >= 1 &&
sizeof(ptr) <= 16);
46936 buf[1] =
sizeof(pu);
46937 duk_debug_write_bytes(thr, buf, 2);
46938 pu.p = (
void *) ptr;
46939#if defined(DUK_USE_INTEGER_LE)
46940 duk_byteswap_bytes((duk_uint8_t *) pu.b,
sizeof(pu));
46942 duk_debug_write_bytes(thr, (
const duk_uint8_t *) &pu.p, (
duk_size_t)
sizeof(pu));
46949#if defined(DUK_USE_DEBUGGER_DUMPHEAP) || defined(DUK_USE_DEBUGGER_INSPECT)
46956 duk_uint8_t buf[3];
46960 DUK_ASSERT(
sizeof(obj) >= 1 &&
sizeof(obj) <= 16);
46965 buf[2] =
sizeof(pu);
46966 duk_debug_write_bytes(thr, buf, 3);
46967 pu.p = (
void *) obj;
46968#if defined(DUK_USE_INTEGER_LE)
46969 duk_byteswap_bytes((duk_uint8_t *) pu.b,
sizeof(pu));
46971 duk_debug_write_bytes(thr, (
const duk_uint8_t *) &pu.p, (
duk_size_t)
sizeof(pu));
46977 duk_uint8_t buf[4];
47005 buf[1] = (duk_uint8_t) (lf_flags >> 8);
47006 buf[2] = (duk_uint8_t) (lf_flags & 0xff);
47007 buf[3] =
sizeof(lf_func);
47008 duk_debug_write_bytes(thr, buf, 4);
47009 duk_debug_write_bytes(thr, (
const duk_uint8_t *) &lf_func,
sizeof(lf_func));
47020#if defined(DUK_USE_FASTINT)
47035 i32 = (duk_int32_t) du1.
d;
47039 "du2=%02x%02x%02x%02x%02x%02x%02x%02x",
47041 (
unsigned int) du1.
uc[0],
47042 (
unsigned int) du1.
uc[1],
47043 (
unsigned int) du1.
uc[2],
47044 (
unsigned int) du1.
uc[3],
47045 (
unsigned int) du1.
uc[4],
47046 (
unsigned int) du1.
uc[5],
47047 (
unsigned int) du1.
uc[6],
47048 (
unsigned int) du1.
uc[7],
47049 (
unsigned int) du2.
uc[0],
47050 (
unsigned int) du2.
uc[1],
47051 (
unsigned int) du2.
uc[2],
47052 (
unsigned int) du2.
uc[3],
47053 (
unsigned int) du2.
uc[4],
47054 (
unsigned int) du2.
uc[5],
47055 (
unsigned int) du2.
uc[6],
47056 (
unsigned int) du2.
uc[7]));
47058 if (
duk_memcmp((
const void *) du1.
uc, (
const void *) du2.
uc,
sizeof(du1.
uc)) == 0) {
47059 duk_debug_write_int(thr, i32);
47061 DUK_DBLUNION_DOUBLE_HTON(&du1);
47063 duk_debug_write_bytes(thr, (
const duk_uint8_t *) du1.
uc,
sizeof(du1.
uc));
47068#if defined(DUK_USE_DEBUGGER_DUMPHEAP)
47075 duk_debug_write_heapptr(thr, h);
47077 duk_debug_write_tval(thr, tv);
47089 duk_debug_write_int(thr, command);
47100 duk_debug_write_int(thr, (duk_int32_t) err_code);
47101 duk_debug_write_cstring(thr, msg);
47102 duk_debug_write_eom(thr);
47107 duk_debug_write_int(thr, (duk_int32_t) command);
47118 duk_debug_write_flush(thr);
47142 pc = duk_hthread_get_act_curr_pc(thr, act);
47161 duk_debug_write_undefined(thr);
47162 duk_debug_write_undefined(thr);
47163 duk_debug_write_int(thr, 0);
47164 duk_debug_write_int(thr, 0);
47168 duk__debug_write_hstring_safe_top(thr);
47170 duk__debug_write_hstring_safe_top(thr);
47173 duk_debug_write_uint(thr, (duk_uint32_t) duk_debug_curr_line(thr));
47174 duk_debug_write_uint(thr, (duk_uint32_t) duk_hthread_get_act_curr_pc(thr, act));
47177 duk_debug_write_eom(thr);
47180#if defined(DUK_USE_DEBUGGER_THROW_NOTIFY)
47192 duk_debug_write_int(thr, (duk_int32_t) fatal);
47196 duk__debug_write_hstring_safe_top(thr);
47202 duk__debug_write_hstring_safe_top(thr);
47215 duk__debug_write_hstring_safe_top(thr);
47223 duk_debug_write_cstring(thr,
"");
47224 duk_debug_write_uint(thr, 0);
47228 duk_debug_write_eom(thr);
47241 x = duk_debug_read_byte(thr);
47244 duk_debug_skip_byte(thr);
47251 duk_debug_skip_bytes(thr, (
duk_size_t) (x - 0x60));
47263 (void) duk__debug_read_uint32_raw(thr);
47267 len = duk__debug_read_uint32_raw(thr);
47268 duk_debug_skip_bytes(thr, len);
47272 len = duk__debug_read_uint16_raw(thr);
47273 duk_debug_skip_bytes(thr, len);
47282 duk_debug_skip_bytes(thr, 8);
47285 duk_debug_skip_byte(thr);
47286 len = duk_debug_read_byte(thr);
47287 duk_debug_skip_bytes(thr, len);
47291 len = duk_debug_read_byte(thr);
47292 duk_debug_skip_bytes(thr, len);
47295 duk_debug_skip_bytes(thr, 2);
47296 len = duk_debug_read_byte(thr);
47297 duk_debug_skip_bytes(thr, len);
47306 DUK__SET_CONN_BROKEN(thr, 1);
47313 if (duk__debug_skip_dvalue(thr)) {
47324 level = duk_debug_read_int(thr);
47325 if (level >= 0 || -level > (duk_int32_t) thr->
callstack_top) {
47339 level = duk_debug_read_int(thr);
47355 duk_debug_write_reply(thr);
47359#if defined(DUK_USE_DOUBLE_LE)
47360 duk_debug_write_int(thr, 1);
47361#elif defined(DUK_USE_DOUBLE_ME)
47362 duk_debug_write_int(thr, 2);
47363#elif defined(DUK_USE_DOUBLE_BE)
47364 duk_debug_write_int(thr, 3);
47366 duk_debug_write_int(thr, 0);
47368 duk_debug_write_int(thr, (
duk_int_t)
sizeof(
void *));
47369 duk_debug_write_eom(thr);
47376 duk_debug_write_reply(thr);
47377 duk_debug_write_eom(thr);
47378 heap->dbg_state_dirty = 1;
47383 duk_debug_set_paused(heap);
47384 duk_debug_write_reply(thr);
47385 duk_debug_write_eom(thr);
47393 duk_debug_clear_paused(heap);
47401#if defined(DUK_USE_DEBUGGER_PAUSE_UNCAUGHT)
47405 duk__debug_set_pause_state(thr, heap, pause_flags);
47407 duk_debug_write_reply(thr);
47408 duk_debug_write_eom(thr);
47414 DUK_D(
DUK_DPRINT(
"debug command StepInto/StepOver/StepOut: %d", (
int) cmd));
47424#if defined(DUK_USE_DEBUGGER_PAUSE_UNCAUGHT)
47432 duk_debug_clear_paused(heap);
47433 duk__debug_set_pause_state(thr, heap, pause_flags);
47435 duk_debug_write_reply(thr);
47436 duk_debug_write_eom(thr);
47443 duk_debug_write_reply(thr);
47445 duk_debug_write_hstring(thr, heap->dbg_breakpoints[i].filename);
47446 duk_debug_write_uint(thr, (duk_uint32_t) heap->dbg_breakpoints[i].line);
47448 duk_debug_write_eom(thr);
47453 duk_uint32_t linenumber;
47458 filename = duk_debug_read_hstring(thr);
47459 linenumber = (duk_uint32_t) duk_debug_read_int(thr);
47461 idx = duk_debug_add_breakpoint(thr, filename, linenumber);
47463 duk_debug_write_reply(thr);
47464 duk_debug_write_int(thr, (duk_int32_t) idx);
47465 duk_debug_write_eom(thr);
47478 if (duk_debug_remove_breakpoint(thr, idx)) {
47479 duk_debug_write_reply(thr);
47480 duk_debug_write_eom(thr);
47494 act = duk__debug_read_level_get_activation(thr);
47498 str = duk_debug_read_hstring(thr);
47503 duk_debug_write_reply(thr);
47505 duk_debug_write_int(thr, 1);
47509 duk_debug_write_int(thr, 0);
47510 duk_debug_write_unused(thr);
47512 duk_debug_write_eom(thr);
47523 act = duk__debug_read_level_get_activation(thr);
47527 str = duk_debug_read_hstring(thr);
47529 tv = duk_debug_read_tval(thr);
47540 duk_debug_write_reply(thr);
47541 duk_debug_write_eom(thr);
47553 duk_debug_write_reply(thr);
47554 while (curr_thr != NULL) {
47571 duk__debug_write_hstring_safe_top(thr);
47573 duk__debug_write_hstring_safe_top(thr);
47574 pc = duk_hthread_get_act_curr_pc(thr, curr_act);
47579 duk_debug_write_uint(thr, (duk_uint32_t)
line);
47580 duk_debug_write_uint(thr, (duk_uint32_t) pc);
47583 curr_thr = curr_thr->
resumer;
47588 duk_debug_write_eom(thr);
47597 act = duk__debug_read_level_get_activation(thr);
47602 duk_debug_write_reply(thr);
47615 if (h_varmap != NULL) {
47634 duk_debug_write_eom(thr);
47666 (void) duk_debug_read_byte(thr);
47669 level = duk__debug_read_validate_csindex(thr);
47677 (void) duk_debug_read_hstring(thr);
47719 duk_debug_write_reply(thr);
47720 duk_debug_write_int(thr, (duk_int32_t) eval_err);
47723 duk_debug_write_eom(thr);
47730 duk_debug_write_reply(thr);
47731 duk_debug_write_eom(thr);
47734 DUK__SET_CONN_BROKEN(thr, 0);
47744 if (heap->dbg_request_cb != NULL) {
47758 tv = duk_debug_read_tval(thr);
47768 DUK_D(
DUK_DPRINT(
"calling into AppRequest request_cb with nvalues=%ld, old_top=%ld, top=%ld",
47772 nrets = heap->dbg_request_cb(thr, heap->dbg_udata, nvalues);
47773 DUK_D(
DUK_DPRINT(
"returned from AppRequest request_cb; nvalues=%ld -> nrets=%ld, old_top=%ld, top=%ld",
47781 DUK_D(
DUK_DPRINT(
"AppRequest callback doesn't match value stack configuration, "
47782 "top=%ld < old_top=%ld + nrets=%ld; "
47783 "this might mean it's unsafe to continue!",
47793 for (idx = top - nrets; idx < top; idx++) {
47796 duk_debug_write_eom(thr);
47800 DUK_D(
DUK_DPRINT(
"request callback return value doesn't match value stack configuration"));
47808 DUK_D(
DUK_DPRINT(
"no request callback, treat AppRequest as unsupported"));
47816 DUK__SET_CONN_BROKEN(thr, 1);
47823#if defined(DUK_USE_DEBUGGER_DUMPHEAP)
47830 duk_debug_write_heapptr(thr, hdr);
47833#if defined(DUK_USE_REFERENCE_COUNTING)
47836 duk_debug_write_int(thr, (duk_int32_t) -1);
47846 duk_debug_write_hstring(thr, h);
47866 duk_debug_write_int(thr, 0);
47867 duk_debug_write_unused(thr);
47871 duk_debug_write_int(thr, 1);
47875 duk_debug_write_int(thr, 0);
47906 while (hdr != NULL) {
47907 duk__debug_dump_heaphdr(thr, heap, hdr);
47916 for (i = 0; i < heap->
st_size; i++) {
47917#if defined(DUK_USE_STRTAB_PTRCOMP)
47918 h = DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, heap->strtable16[i]);
47922 while (h != NULL) {
47923 duk__debug_dump_heaphdr(thr, heap, (
duk_heaphdr *) h);
47932 duk_debug_write_reply(thr);
47933 duk__debug_dump_heap_allocated(thr, heap);
47934 duk__debug_dump_strtab(thr, heap);
47935 duk_debug_write_eom(thr);
47945 duk_int32_t level = -1;
47952 ibyte = duk_debug_peek_byte(thr);
47954 tv = duk_debug_read_tval(thr);
47985 duk_debug_write_reply(thr);
47987 duk_debug_write_int(thr, (duk_int32_t) n);
47989 for (i = 0; i < n; i++) {
47990 duk_debug_write_tval(thr, tv);
47994 duk_debug_write_int(thr, (duk_int32_t) n);
47996 for (i = 0; i < n; i++) {
47997 duk_debug_write_hobject(thr, *fn);
48000 duk_debug_write_string(thr,
48003 duk_debug_write_eom(thr);
48020#if defined(DUK_USE_DEBUGGER_INSPECT)
48023DUK_LOCAL const char *
const duk__debug_getinfo_heaphdr_keys[] = {
48040DUK_LOCAL const char *
const duk__debug_getinfo_hstring_keys[] = {
48046 "strict_reserved_word",
48047 "eval_or_arguments",
48064DUK_LOCAL const char *
const duk__debug_getinfo_hobject_keys[] = {
48065 "extensible",
"constructable",
"callable",
"boundfunc",
"compfunc",
"natfunc",
"bufobj",
48066 "fastrefs",
"array_part",
"strict",
"notail",
"newenv",
"namebinding",
"createargs",
48067 "have_finalizer",
"exotic_array",
"exotic_stringobj",
"exotic_arguments",
"exotic_proxyobj",
"special_call"
48079DUK_LOCAL const char *
const duk__debug_getinfo_hbuffer_keys[] = {
48091 duk_debug_write_uint(thr, 0);
48092 duk_debug_write_cstring(thr, key);
48096 duk_debug_write_uint(thr, 0);
48097 duk_debug_write_cstring(thr, key);
48098 duk_debug_write_uint(thr, val);
48102 duk_debug_write_uint(thr, 0);
48103 duk_debug_write_cstring(thr, key);
48104 duk_debug_write_int(thr, val);
48108 duk_debug_write_uint(thr, 0);
48109 duk_debug_write_cstring(thr, key);
48110 duk_debug_write_boolean(thr, val);
48127 (
unsigned long) mask,
48128 (
unsigned long) flags));
48129 duk__debug_getinfo_prop_bool(thr, key, flags & mask);
48148 if (idx < a_size) {
48150 duk_debug_write_uint(thr, idx);
48152 duk_debug_write_tval(thr, tv);
48162 if (h_key == NULL) {
48163 duk_debug_write_uint(thr, 0);
48164 duk_debug_write_null(thr);
48165 duk_debug_write_unused(thr);
48176 duk_debug_write_uint(thr, flags);
48177 duk_debug_write_hstring(thr, h_key);
48181 duk_debug_write_hobject(thr, h_getset);
48183 duk_debug_write_null(thr);
48187 duk_debug_write_hobject(thr, h_getset);
48189 duk_debug_write_null(thr);
48193 duk_debug_write_tval(thr, tv);
48204 DUK_ASSERT(
sizeof(duk__debug_getinfo_hstring_keys) /
sizeof(
const char *) ==
48205 sizeof(duk__debug_getinfo_hstring_masks) /
sizeof(
duk_uint_t) - 1);
48206 DUK_ASSERT(
sizeof(duk__debug_getinfo_hobject_keys) /
sizeof(
const char *) ==
48207 sizeof(duk__debug_getinfo_hobject_masks) /
sizeof(
duk_uint_t) - 1);
48208 DUK_ASSERT(
sizeof(duk__debug_getinfo_hbuffer_keys) /
sizeof(
const char *) ==
48209 sizeof(duk__debug_getinfo_hbuffer_masks) /
sizeof(
duk_uint_t) - 1);
48211 h = duk_debug_read_any_ptr(thr);
48217 duk_debug_write_reply(thr);
48224 duk__debug_getinfo_flags_key(thr,
"heapptr");
48225 duk_debug_write_heapptr(thr, h);
48230#if defined(DUK_USE_REFERENCE_COUNTING)
48234 duk__debug_getinfo_bitmask(thr,
48235 duk__debug_getinfo_heaphdr_keys,
48236 duk__debug_getinfo_heaphdr_masks,
48245 duk__debug_getinfo_bitmask(thr,
48246 duk__debug_getinfo_hstring_keys,
48247 duk__debug_getinfo_hstring_masks,
48252 duk__debug_getinfo_flags_key(thr,
"data");
48253 duk_debug_write_hstring(thr, h_str);
48264 duk__debug_getinfo_bitmask(thr,
48265 duk__debug_getinfo_hobject_keys,
48266 duk__debug_getinfo_hobject_masks,
48269 duk__debug_getinfo_flags_key(thr,
"class_name");
48271 duk__debug_getinfo_flags_key(thr,
"prototype");
48272 if (h_proto != NULL) {
48273 duk_debug_write_hobject(thr, h_proto);
48275 duk_debug_write_null(thr);
48277 duk__debug_getinfo_flags_key(thr,
"props");
48296 duk__debug_getinfo_prop_int(thr,
"nargs", h_fun->
nargs);
48297 duk__debug_getinfo_prop_int(thr,
"magic", h_fun->
magic);
48302 duk__debug_getinfo_flags_key(thr,
"funcptr");
48303 duk_debug_write_buffer(thr, (
const char *) &h_fun->
func,
sizeof(h_fun->
func));
48313 duk__debug_getinfo_prop_int(thr,
"nregs", h_fun->
nregs);
48314 duk__debug_getinfo_prop_int(thr,
"nargs", h_fun->
nargs);
48316 duk__debug_getinfo_flags_key(thr,
"lex_env");
48318 if (h_lexenv != NULL) {
48319 duk_debug_write_hobject(thr, h_lexenv);
48321 duk_debug_write_null(thr);
48323 duk__debug_getinfo_flags_key(thr,
"var_env");
48325 if (h_varenv != NULL) {
48326 duk_debug_write_hobject(thr, h_varenv);
48328 duk_debug_write_null(thr);
48331 duk__debug_getinfo_prop_uint(thr,
"start_line", h_fun->start_line);
48332 duk__debug_getinfo_prop_uint(thr,
"end_line", h_fun->end_line);
48334 if (h_buf != NULL) {
48335 duk__debug_getinfo_flags_key(thr,
"data");
48336 duk_debug_write_heapptr(thr, (
duk_heaphdr *) h_buf);
48344 duk__debug_getinfo_flags_key(thr,
"target");
48345 duk_debug_write_tval(thr, &h_bfun->
target);
48346 duk__debug_getinfo_flags_key(thr,
"this_binding");
48348 duk__debug_getinfo_flags_key(thr,
"nargs");
48349 duk_debug_write_int(thr, h_bfun->
nargs);
48366 duk__debug_getinfo_flags_key(thr,
"thread");
48368 duk__debug_getinfo_flags_key(thr,
"varmap");
48377 duk__debug_getinfo_flags_key(thr,
"target");
48379 duk__debug_getinfo_prop_bool(thr,
"has_this", h_env->
has_this);
48382#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
48387 duk__debug_getinfo_prop_uint(thr,
"slice_offset", h_bufobj->
offset);
48388 duk__debug_getinfo_prop_uint(thr,
"slice_length", h_bufobj->
length);
48389 duk__debug_getinfo_prop_uint(thr,
"elem_shift", (
duk_uint_t) h_bufobj->
shift);
48392 if (h_bufobj->
buf != NULL) {
48393 duk__debug_getinfo_flags_key(thr,
"buffer");
48404 duk__debug_getinfo_bitmask(thr,
48405 duk__debug_getinfo_hbuffer_keys,
48406 duk__debug_getinfo_hbuffer_masks,
48409 duk__debug_getinfo_flags_key(thr,
"dataptr");
48411 duk__debug_getinfo_flags_key(thr,
"data");
48412 duk_debug_write_hbuffer(thr, h_buf);
48417 DUK_D(
DUK_DPRINT(
"inspect target pointer has invalid heaphdr type"));
48421 duk_debug_write_eom(thr);
48433 h = duk_debug_read_any_ptr(thr);
48438 h_key = duk_debug_read_hstring(thr);
48452 duk_debug_write_reply(thr);
48453 rc = duk__debug_getprop_index(thr, heap, h_obj, (
duk_uint_t) virtual_idx);
48456 duk_debug_write_eom(thr);
48474 h = duk_debug_read_any_ptr(thr);
48475 idx_start = (
duk_uint_t) duk_debug_read_int(thr);
48476 idx_end = (
duk_uint_t) duk_debug_read_int(thr);
48489 duk_debug_write_reply(thr);
48490 for (idx = idx_start; idx < idx_end; idx++) {
48491 if (!duk__debug_getprop_index(thr, heap, h_obj, idx)) {
48495 duk_debug_write_eom(thr);
48528 x = duk_debug_read_byte(thr);
48531 cmd = duk_debug_read_int(thr);
48534 duk__debug_handle_basic_info(thr, heap);
48538 duk__debug_handle_trigger_status(thr, heap);
48542 duk__debug_handle_pause(thr, heap);
48546 duk__debug_handle_resume(thr, heap);
48552 duk__debug_handle_step(thr, heap, cmd);
48556 duk__debug_handle_list_break(thr, heap);
48560 duk__debug_handle_add_break(thr, heap);
48564 duk__debug_handle_del_break(thr, heap);
48568 duk__debug_handle_get_var(thr, heap);
48572 duk__debug_handle_put_var(thr, heap);
48576 duk__debug_handle_get_call_stack(thr, heap);
48580 duk__debug_handle_get_locals(thr, heap);
48584 duk__debug_handle_eval(thr, heap);
48592 duk__debug_handle_detach(thr, heap);
48595#if defined(DUK_USE_DEBUGGER_DUMPHEAP)
48597 duk__debug_handle_dump_heap(thr, heap);
48602 duk__debug_handle_get_bytecode(thr, heap);
48606 duk__debug_handle_apprequest(thr, heap);
48609#if defined(DUK_USE_DEBUGGER_INSPECT)
48611 duk__debug_handle_get_heap_obj_info(thr, heap);
48615 duk__debug_handle_get_obj_prop_desc(thr, heap);
48619 duk__debug_handle_get_obj_prop_desc_range(thr, heap);
48643 DUK_D(
DUK_DPRINT(
"invalid initial byte, drop connection: %d", (
int) x));
48650 duk__debug_skip_to_eom(thr);
48656 DUK__SET_CONN_BROKEN(thr, 1);
48661 if (thr->
heap->dbg_read_cb != NULL && thr->
heap->dbg_state_dirty) {
48662 duk_debug_send_status(thr);
48663 thr->
heap->dbg_state_dirty = 0;
48668#if defined(DUK_USE_ASSERTIONS)
48675#if defined(DUK_USE_ASSERTIONS)
48679 DUK_D(
DUK_DPRINT(
"process debug messages: read_cb=%s, no_block=%ld, detaching=%ld, processing=%ld",
48680 thr->
heap->dbg_read_cb ?
"not NULL" :
"NULL",
48682 (
long) thr->
heap->dbg_detaching,
48683 (
long) thr->
heap->dbg_processing));
48691 thr->
heap->dbg_processing = 1;
48697 duk__check_resend_status(thr);
48706 while (thr->
heap->dbg_read_cb == NULL && thr->
heap->dbg_detaching) {
48727 DUK_D(
DUK_DPRINT(
"detach pending (dbg_read_cb == NULL, dbg_detaching != 0), call detach2"));
48729 duk__debug_do_detach2(thr->
heap);
48730 thr->
heap->dbg_processing = 1;
48732 DUK_D(
DUK_DPRINT(
"after detach2 (and possible reattach): dbg_read_cb=%s, dbg_detaching=%ld",
48733 thr->
heap->dbg_read_cb ?
"not NULL" :
"NULL",
48734 (
long) thr->
heap->dbg_detaching));
48739 if (thr->
heap->dbg_read_cb == NULL) {
48740 DUK_D(
DUK_DPRINT(
"debug connection broken (and not detaching), stop processing messages"));
48745 if (!duk_debug_read_peek(thr)) {
48750 DUK_D(
DUK_DPRINT(
"processing debug message, peek indicated no data, stop processing messages"));
48753 DUK_D(
DUK_DPRINT(
"processing debug message, peek indicated there is data, handle it"));
48755 DUK_D(
DUK_DPRINT(
"paused, process debug message, blocking if necessary"));
48758 duk__check_resend_status(thr);
48759 duk__debug_process_message(thr);
48760 duk__check_resend_status(thr);
48767 thr->
heap->dbg_processing = 0;
48772 duk_debug_read_flush(thr);
48777#if defined(DUK_USE_ASSERTIONS)
48806 duk_debug_set_paused(thr->
heap);
48836 thr->
heap->dbg_state_dirty = 1;
48840 duk_debug_process_messages(thr, 0 );
48874 DUK_D(
DUK_DPRINT(
"failed to add breakpoint for %O:%ld, all breakpoint slots used",
48880 b = heap->dbg_breakpoints + (heap->dbg_breakpoint_count++);
48905 if (breakpoint_index >= heap->dbg_breakpoint_count) {
48906 DUK_D(
DUK_DPRINT(
"invalid breakpoint index: %ld", (
long) breakpoint_index));
48909 b = heap->dbg_breakpoints + breakpoint_index;
48914 move_size =
sizeof(
duk_breakpoint) * (heap->dbg_breakpoint_count - breakpoint_index - 1);
48915 duk_memmove((
void *) b, (
const void *) (b + 1), (
size_t) move_size);
48917 heap->dbg_breakpoint_count--;
48933 return (heap->dbg_read_cb != NULL);
48941 if (duk_debug_is_paused(heap)) {
48942 DUK_D(
DUK_DPRINT(
"trying to set paused state when already paused, ignoring"));
48945 heap->dbg_state_dirty = 1;
48946 duk_debug_clear_pause_state(heap);
48956 if (duk_debug_is_paused(heap)) {
48958 heap->dbg_state_dirty = 1;
48959 duk_debug_clear_pause_state(heap);
48966 DUK_D(
DUK_DPRINT(
"trying to clear paused state when not paused, ignoring"));
48971 heap->dbg_pause_flags = 0;
48972 heap->dbg_pause_act = NULL;
48973 heap->dbg_pause_startline = 0;
48983#undef DUK__DBG_TPORT_ENTER
48984#undef DUK__DBG_TPORT_EXIT
48985#undef DUK__SET_CONN_BROKEN
49046#if defined(DUK_USE_ERRTHROW) || defined(DUK_USE_ERRCREATE)
49082 if (tv_hnd == NULL) {
49123#if defined(DUK_USE_TRACEBACKS)
49126 const char *c_filename,
49168 arr_size = depth * 2;
49184 DUK_D(
DUK_DPRINT(
"preallocated _Tracedata to %ld items", (
long) arr_size));
49230 for (; depth-- > 0; act = act->
parent) {
49259#if defined(DUK_USE_ASSERTIONS)
49286#if defined(DUK_USE_AUGMENT_ERROR_CREATE) && !defined(DUK_USE_TRACEBACKS)
49289 const char *c_filename,
49292#if defined(DUK_USE_ASSERTIONS)
49296#if defined(DUK_USE_ASSERTIONS)
49326 duk_uint32_t ecma_line;
49340 if (func == NULL) {
49368#if defined(DUK_USE_PC2LINE)
49395#if defined(DUK_USE_ASSERTIONS)
49407#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
49437 DUK_D(
DUK_DPRINT(
"syntax error, determined at_end=%ld; curr_token.start_offset=%ld, "
49438 "lex.input_length=%ld, window[0].codepoint=%ld, window[1].codepoint=%ld",
49448 at_end ?
", end of input" :
"");
49464#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
49467 const char *c_filename,
49471#if defined(DUK_USE_ASSERTIONS)
49475#if defined(DUK_USE_ASSERTIONS)
49484#if defined(DUK_USE_TRACEBACKS)
49490 DUK_DDD(
DUK_DDDPRINT(
"error value already has a '_Tracedata' property, not modifying it"));
49498 duk__add_fileline(thr, thr_callstack, c_filename, c_line, flags);
49501#if defined(DUK_USE_ASSERTIONS)
49522#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
49525 const char *c_filename,
49557 DUK_DDD(
DUK_DDDPRINT(
"value is not an error instance, skip both built-in and user augment"));
49569#if defined(DUK_USE_ERRCREATE)
49581#if defined(DUK_USE_AUGMENT_ERROR_THROW)
49583#if defined(DUK_USE_ERRTHROW)
49595#if defined(DUK_USE_PREFER_SIZE)
49598 (void)
duk_fatal(thr,
"uncaught error");
49606 const char *summary;
49610 DUK_SNPRINTF(buf,
sizeof(buf),
"uncaught: %s", summary);
49611 buf[
sizeof(buf) - 1] = (
char) 0;
49612 (void)
duk_fatal(thr, (
const char *) buf);
49617#if !defined(DUK_USE_PREFER_SIZE)
49620 const char *summary;
49625 DUK_SNPRINTF(buf,
sizeof(buf),
"uncaught: %s", summary);
49626 buf[
sizeof(buf) - 1] = (
char) 0;
49627 (void)
duk_fatal(thr, (
const char *) buf);
49660#if defined(DUK_USE_ASSERTIONS)
49663 thr->
heap->error_not_allowed = 1;
49673 DUK_D(
DUK_DPRINT(
"uncaught error: type=%d iserror=%d value1=%!T value2=%!T",
49679#if defined(DUK_USE_PREFER_SIZE)
49680 duk__uncaught_minimal(thr);
49687#if defined(DUK_USE_CPP_EXCEPTIONS)
49688 throw duk_internal_exception();
49706#if defined(DUK_USE_DEBUGGER_SUPPORT)
49719 for (; thr != NULL; thr = thr->
resumer) {
49721 for (cat = act->
cat; cat != NULL; cat = cat->
parent) {
49760#if defined(DUK_USE_DEBUGGER_SUPPORT)
49782 DUK_D(
DUK_DPRINT(
"skip debugger error integration; not attached, debugger processing, not THROW, or error thrown "
49783 "while creating error"));
49795 DUK_D(
DUK_DPRINT(
"built-in DoubleError instance (re)thrown, not intercepting"));
49799 uncaught = !duk__have_active_catcher(thr);
49816#if defined(DUK_USE_DEBUGGER_THROW_NOTIFY)
49819 duk_debug_send_throw(thr, uncaught);
49825 duk_debug_halt_execution(thr, 1 );
49830 duk_debug_halt_execution(thr, 1 );
49862 heap->
lj.
type = lj_type;
49890#if defined(DUK_USE_VERBOSE_ERRORS)
49894 const char *filename,
49899#if defined(DUK_USE_VERBOSE_ERRORS)
49900 DUK_DD(
DUK_DDPRINT(
"duk_err_create_and_throw(): code=%ld, msg=%s, filename=%s, line=%ld",
49902 (
const char *) msg,
49903 (
const char *) filename,
49938 if (h_err != NULL) {
49939 DUK_D(
DUK_DPRINT(
"double fault detected -> use built-in fixed 'double error' instance"));
49942 DUK_D(
DUK_DPRINT(
"double fault detected; there is no built-in fixed 'double error' instance "
49943 "-> use the error code as a number"));
49963#if defined(DUK_USE_VERBOSE_ERRORS)
49975#if defined(DUK_USE_AUGMENT_ERROR_THROW)
49989#if defined(DUK_USE_DEBUGGER_SUPPORT)
49990 duk_err_check_debugger_integration(thr);
50024 duk_error_raw(thr, -rc, NULL, 0,
"error (rc %ld)", (
long) rc);
50053 DUK_D(
DUK_DPRINT(
"hbuffer alloc failed: size too large: %ld", (
long) size));
50075#if defined(DUK_USE_ZERO_BUFFER_DATA)
50085 *out_bufdata = NULL;
50086#if defined(DUK_USE_EXPLICIT_NULL_INIT)
50087#if defined(DUK_USE_HEAPPTR16)
50101#if defined(DUK_USE_ZERO_BUFFER_DATA)
50110 *out_bufdata = ptr;
50114 *out_bufdata = NULL;
50115#if defined(DUK_USE_EXPLICIT_NULL_INIT)
50116#if defined(DUK_USE_HEAPPTR16)
50164#if defined(DUK_USE_ASSERTIONS)
50207 if (
DUK_LIKELY(res != NULL || new_size == 0)) {
50223 if (new_size > prev_size) {
50225#if defined(DUK_USE_ZERO_BUFFER_DATA)
50250#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
50259 if (h_bufobj->
offset > buf_size) {
50263 buf_avail = buf_size - h_bufobj->
offset;
50265 return buf_avail >= len ? len : buf_avail;
50274#if defined(DUK_USE_ROM_STRINGS)
50276#define DUK__FIXED_HASH_SEED 0xabcd1234
50318 for (cat = act->
cat; cat != NULL;) {
50363#if defined(DUK_USE_HSTRING_EXTDATA) && defined(DUK_USE_EXTSTR_FREE)
50405#if defined(DUK_USE_CACHE_ACTIVATION)
50415#if defined(DUK_USE_DEBUG)
50424#if defined(DUK_USE_CACHE_CATCHER)
50434#if defined(DUK_USE_DEBUG)
50448#if defined(DUK_USE_CACHE_ACTIVATION)
50451#if defined(DUK_USE_CACHE_CATCHER)
50459 DUK_DPRINT(
"freed %ld activation freelist entries, %ld catcher freelist entries", (
long) count_act, (
long) count_cat));
50479#if defined(DUK_USE_FINALIZER_SUPPORT)
50499#if defined(DUK_USE_FINALIZER_SUPPORT)
50509#if defined(DUK_USE_REFERENCE_COUNTING)
50518 DUK_D(
DUK_DPRINT(
"no heap_thread in heap destruct, assume no finalizable objects"));
50539 for (round_no = 0;; round_no++) {
50542 count_finalized = 0;
50576 if (round_no == 0) {
50580 curr_limit = count_all * 2;
50582 curr_limit = (curr_limit * 3) / 4;
50584 DUK_D(
DUK_DPRINT(
"finalizer round %ld complete, %ld objects, tried to execute %ld finalizers, current limit is %ld",
50587 (
long) count_finalized,
50588 (
long) curr_limit));
50590 if (count_finalized == 0) {
50591 DUK_D(
DUK_DPRINT(
"no more finalizable objects, forced finalization finished"));
50594 if (count_finalized >= curr_limit) {
50595 DUK_D(
DUK_DPRINT(
"finalizer count above limit, potentially runaway finalizer; skip remaining finalizers"));
50610#if defined(DUK_USE_DEBUG)
50611 duk_heap_strtable_dump(heap);
50614#if defined(DUK_USE_DEBUGGER_SUPPORT)
50621 duk_debug_do_detach(heap);
50646 DUK_D(
DUK_DPRINT(
"forced gc #3 in heap destruction (don't run finalizers)"));
50656#if defined(DUK_USE_REFERENCE_COUNTING)
50659#if defined(DUK_USE_FINALIZER_SUPPORT)
50663#if defined(DUK_USE_FINALIZER_SUPPORT)
50664 DUK_D(
DUK_DPRINT(
"run finalizers for remaining finalizable objects"));
50676 DUK_D(
DUK_DPRINT(
"freeing heap_allocated of heap: %p", (
void *) heap));
50679#if defined(DUK_USE_REFERENCE_COUNTING)
50683#if defined(DUK_USE_FINALIZER_SUPPORT)
50684 DUK_D(
DUK_DPRINT(
"freeing finalize_list of heap: %p", (
void *) heap));
50688 DUK_D(
DUK_DPRINT(
"freeing string table of heap: %p", (
void *) heap));
50702#if defined(DUK_USE_ROM_STRINGS)
50704#if defined(DUK_USE_ASSERTIONS)
50714#if defined(DUK_USE_ASSERTIONS)
50715 for (i = 0; i <
sizeof(duk_rom_strings_lookup) /
sizeof(
const duk_hstring *); i++) {
50719 h = duk_rom_strings_lookup[i];
50720 while (h != NULL) {
50722 DUK_DD(
DUK_DDPRINT(
"duk_rom_strings_lookup[%d] -> hash 0x%08lx, computed 0x%08lx",
50725 (
unsigned long) hash));
50785#if defined(DUK_USE_HEAPPTR16)
50786 heap->strs16[i] = DUK_USE_HEAPPTR_ENC16(heap->
heap_udata, (
void *) h);
50809#if defined(DUK_USE_ROM_STRINGS)
50812#if defined(DUK_USE_HEAPPTR16)
50813 thr->strs16 = heap->strs16;
50838#if defined(DUK_USE_DEBUG)
50839#define DUK__DUMPSZ(t) \
50841 DUK_D(DUK_DPRINT("" #t "=%ld", (long) sizeof(t))); \
50849#define DUK__DUMPLM_SIGNED_RAW(t, a, b) \
50851 DUK_D(DUK_DPRINT(t "=[%ld,%ld]=[%lf,%lf]", (long) (a), (long) (b), (double) (a), (double) (b))); \
50853#define DUK__DUMPLM_UNSIGNED_RAW(t, a, b) \
50855 DUK_D(DUK_DPRINT(t "=[%lu,%lu]=[%lf,%lf]", (unsigned long) (a), (unsigned long) (b), (double) (a), (double) (b))); \
50857#define DUK__DUMPLM_SIGNED(t) \
50859 DUK__DUMPLM_SIGNED_RAW("DUK_" #t "_{MIN,MAX}", DUK_##t##_MIN, DUK_##t##_MAX); \
50861#define DUK__DUMPLM_UNSIGNED(t) \
50863 DUK__DUMPLM_UNSIGNED_RAW("DUK_" #t "_{MIN,MAX}", DUK_##t##_MIN, DUK_##t##_MAX); \
50866DUK_LOCAL void duk__dump_type_sizes(
void) {
50871 DUK__DUMPSZ(
short);
50874 DUK__DUMPSZ(
double);
50875 DUK__DUMPSZ(
void *);
50876 DUK__DUMPSZ(
size_t);
50879 DUK__DUMPSZ(duk_uint8_t);
50880 DUK__DUMPSZ(duk_int8_t);
50881 DUK__DUMPSZ(duk_uint16_t);
50882 DUK__DUMPSZ(duk_int16_t);
50883 DUK__DUMPSZ(duk_uint32_t);
50884 DUK__DUMPSZ(duk_int32_t);
50885 DUK__DUMPSZ(duk_uint64_t);
50886 DUK__DUMPSZ(duk_int64_t);
50893#if defined(DUK_USE_64BIT_OPS)
50894 DUK__DUMPSZ(duk_uint_least64_t);
50895 DUK__DUMPSZ(duk_int_least64_t);
50903#if defined(DUK_USE_64BIT_OPS)
50904 DUK__DUMPSZ(duk_uint_fast64_t);
50905 DUK__DUMPSZ(duk_int_fast64_t);
50907 DUK__DUMPSZ(duk_uintptr_t);
50908 DUK__DUMPSZ(duk_intptr_t);
50947#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
50964 DUK__DUMPSZ(duk_fixedbuffer);
50977DUK_LOCAL void duk__dump_type_limits(
void) {
50981 DUK__DUMPLM_SIGNED(INT8);
50982 DUK__DUMPLM_UNSIGNED(UINT8);
50983 DUK__DUMPLM_SIGNED(INT_FAST8);
50984 DUK__DUMPLM_UNSIGNED(UINT_FAST8);
50985 DUK__DUMPLM_SIGNED(INT_LEAST8);
50986 DUK__DUMPLM_UNSIGNED(UINT_LEAST8);
50987 DUK__DUMPLM_SIGNED(INT16);
50988 DUK__DUMPLM_UNSIGNED(UINT16);
50989 DUK__DUMPLM_SIGNED(INT_FAST16);
50990 DUK__DUMPLM_UNSIGNED(UINT_FAST16);
50991 DUK__DUMPLM_SIGNED(INT_LEAST16);
50992 DUK__DUMPLM_UNSIGNED(UINT_LEAST16);
50993 DUK__DUMPLM_SIGNED(INT32);
50994 DUK__DUMPLM_UNSIGNED(UINT32);
50995 DUK__DUMPLM_SIGNED(INT_FAST32);
50996 DUK__DUMPLM_UNSIGNED(UINT_FAST32);
50997 DUK__DUMPLM_SIGNED(INT_LEAST32);
50998 DUK__DUMPLM_UNSIGNED(UINT_LEAST32);
50999#if defined(DUK_USE_64BIT_OPS)
51000 DUK__DUMPLM_SIGNED(INT64);
51001 DUK__DUMPLM_UNSIGNED(UINT64);
51002 DUK__DUMPLM_SIGNED(INT_FAST64);
51003 DUK__DUMPLM_UNSIGNED(UINT_FAST64);
51004 DUK__DUMPLM_SIGNED(INT_LEAST64);
51005 DUK__DUMPLM_UNSIGNED(UINT_LEAST64);
51007 DUK__DUMPLM_SIGNED(INTPTR);
51008 DUK__DUMPLM_UNSIGNED(UINTPTR);
51009 DUK__DUMPLM_SIGNED(INTMAX);
51010 DUK__DUMPLM_UNSIGNED(UINTMAX);
51013 DUK__DUMPLM_SIGNED(INT);
51014 DUK__DUMPLM_UNSIGNED(UINT);
51015 DUK__DUMPLM_SIGNED(INT_FAST);
51016 DUK__DUMPLM_UNSIGNED(UINT_FAST);
51017 DUK__DUMPLM_SIGNED(SMALL_INT);
51018 DUK__DUMPLM_UNSIGNED(SMALL_UINT);
51019 DUK__DUMPLM_SIGNED(SMALL_INT_FAST);
51020 DUK__DUMPLM_UNSIGNED(SMALL_UINT_FAST);
51023DUK_LOCAL void duk__dump_misc_options(
void) {
51030#if defined(DUK_USE_PACKED_TVAL)
51035#if defined(DUK_USE_VARIADIC_MACROS)
51040#if defined(DUK_USE_INTEGER_LE)
51042#elif defined(DUK_USE_INTEGER_ME)
51044#elif defined(DUK_USE_INTEGER_BE)
51049#if defined(DUK_USE_DOUBLE_LE)
51051#elif defined(DUK_USE_DOUBLE_ME)
51053#elif defined(DUK_USE_DOUBLE_BE)
51068 duk_uint32_t st_initsize;
51086#if defined(DUK_USE_DEBUG)
51087 duk__dump_misc_options();
51088 duk__dump_type_sizes();
51089 duk__dump_type_limits();
51096#if defined(DUK_USE_SELF_TESTS)
51098 if (duk_selftest_run_tests(alloc_func, realloc_func, free_func, heap_udata) > 0) {
51099 fatal_func(heap_udata,
"self test(s) failed");
51109#if defined(DUK_USE_EXEC_REGCONST_OPTIMIZE)
51114#if defined(DUK_USE_PACKED_TVAL)
51119 fatal_func(heap_udata,
"sizeof(duk_tval) not 8 or 16, cannot use DUK_USE_EXEC_REGCONST_OPTIMIZE option");
51127#if defined(DUK_USE_COMPUTED_NAN)
51137 volatile double dbl1 = 0.0;
51138 volatile double dbl2 = 0.0;
51139 duk_computed_nan = dbl1 / dbl2;
51143#if defined(DUK_USE_COMPUTED_INFINITY)
51146 volatile double dbl1 = 1.0;
51147 volatile double dbl2 = 0.0;
51148 duk_computed_infinity = dbl1 / dbl2;
51158#if defined(DUK_USE_INJECT_HEAP_ALLOC_ERROR) && (DUK_USE_INJECT_HEAP_ALLOC_ERROR == 1)
51172#if defined(DUK_USE_ASSERTIONS)
51173 res->heap_initializing = 1;
51177#if defined(DUK_USE_EXPLICIT_NULL_INIT)
51180#if defined(DUK_USE_REFERENCE_COUNTING)
51183#if defined(DUK_USE_FINALIZER_SUPPORT)
51185#if defined(DUK_USE_ASSERTIONS)
51186 res->currently_finalizing = NULL;
51189#if defined(DUK_USE_CACHE_ACTIVATION)
51192#if defined(DUK_USE_CACHE_CATCHER)
51198#if defined(DUK_USE_STRTAB_PTRCOMP)
51199 res->strtable16 = NULL;
51203#if defined(DUK_USE_ROM_STRINGS)
51206#if defined(DUK_USE_HEAPPTR16)
51212 res->
strs[i] = NULL;
51217#if defined(DUK_USE_DEBUGGER_SUPPORT)
51218 res->dbg_read_cb = NULL;
51219 res->dbg_write_cb = NULL;
51220 res->dbg_peek_cb = NULL;
51221 res->dbg_read_flush_cb = NULL;
51222 res->dbg_write_flush_cb = NULL;
51223 res->dbg_request_cb = NULL;
51224 res->dbg_udata = NULL;
51225 res->dbg_pause_act = NULL;
51262#if defined(DUK_USE_ROM_STRINGS)
51264 DUK_D(
DUK_DPRINT(
"using rom strings, force heap hash_seed to fixed value 0x%08lx", (
long) DUK__FIXED_HASH_SEED));
51265 res->
hash_seed = (duk_uint32_t) DUK__FIXED_HASH_SEED;
51267 res->
hash_seed = (duk_uint32_t) (duk_uintptr_t) res;
51268#if !defined(DUK_USE_STRHASH_DENSE)
51273#if defined(DUK_USE_EXPLICIT_NULL_INIT)
51288#if defined(DUK_USE_STRTAB_PTRCOMP)
51289 res->strtable16 = (duk_uint16_t *) alloc_func(heap_udata,
sizeof(duk_uint16_t) * st_initsize);
51290 if (res->strtable16 == NULL) {
51300 res->
st_mask = st_initsize - 1;
51301#if (DUK_USE_STRTAB_MINSIZE != DUK_USE_STRTAB_MAXSIZE)
51305#if defined(DUK_USE_STRTAB_PTRCOMP)
51307 duk_memzero(res->strtable16,
sizeof(duk_uint16_t) * st_initsize);
51309#if defined(DUK_USE_EXPLICIT_NULL_INIT)
51312 for (i = 0; i < st_initsize; i++) {
51325#if defined(DUK_USE_EXPLICIT_NULL_INIT)
51337#if defined(DUK_USE_LITCACHE_SIZE)
51340#if defined(DUK_USE_EXPLICIT_NULL_INIT)
51361#if defined(DUK_USE_INJECT_HEAP_ALLOC_ERROR) && (DUK_USE_INJECT_HEAP_ALLOC_ERROR == 2)
51373#if defined(DUK_USE_INJECT_HEAP_ALLOC_ERROR) && (DUK_USE_INJECT_HEAP_ALLOC_ERROR == 3)
51385#if defined(DUK_USE_INJECT_HEAP_ALLOC_ERROR) && (DUK_USE_INJECT_HEAP_ALLOC_ERROR == 4)
51402#if !defined(DUK_USE_GET_RANDOM_DOUBLE)
51403#if defined(DUK_USE_PREFER_SIZE) || !defined(DUK_USE_64BIT_OPS)
51420 duk_uint64_t tmp_u64;
51423 (
const void *) &res,
51424 (
size_t) (
sizeof(
void *) >=
sizeof(duk_uint64_t) ?
sizeof(duk_uint64_t) :
sizeof(
void *)));
51425 res->rnd_state[1] ^= tmp_u64;
51429 for (i = 0; i < 10; i++) {
51444 DUK_D(
DUK_DPRINT(
"heap init: allow finalizer/mark-and-sweep processing"));
51447 res->ms_prevent_count = 0;
51448 res->pf_prevent_count = 0;
51450#if defined(DUK_USE_ASSERTIONS)
51451 res->heap_initializing = 0;
51471 if (res->heap_thread != NULL) {
51472 res->ms_prevent_count = 0;
51473 res->pf_prevent_count = 0;
51475#if defined(DUK_USE_ASSERTIONS)
51476 res->heap_initializing = 0;
51489#undef DUK__DUMPLM_SIGNED
51490#undef DUK__DUMPLM_SIGNED_RAW
51491#undef DUK__DUMPLM_UNSIGNED
51492#undef DUK__DUMPLM_UNSIGNED_RAW
51494#undef DUK__FIXED_HASH_SEED
51501#if defined(DUK_USE_FINALIZER_SUPPORT)
51507#if defined(DUK_USE_FINALIZER_TORTURE)
51517 duk_hthread_valstack_torture_realloc(thr);
51521 "(function dummy() {\n"
51522 " dummy.prototype = null; /* break reference loop */\n"
51524 " throw 'fake-finalizer-dummy-error';\n"
51551 DUK_D(
DUK_DPRINT(
"skip global torture finalizer, too little headroom for call recursion or call stack size"));
51625#if defined(DUK_USE_DEBUG)
51640#if defined(DUK_USE_REFERENCE_COUNTING)
51658#if defined(DUK_USE_FINALIZER_TORTURE)
51659 duk__run_global_torture_finalizer(heap->
heap_thread);
51666#if defined(DUK_USE_REFERENCE_COUNTING)
51670 DUK_DD(
DUK_DDPRINT(
"processing finalize_list entry: %p -> %!iO", (
void *) curr, curr));
51680#if defined(DUK_USE_ASSERTIONS)
51681 DUK_ASSERT(heap->currently_finalizing == NULL);
51682 heap->currently_finalizing = curr;
51697#if defined(DUK_USE_REFERENCE_COUNTING)
51704#if defined(DUK_USE_REFERENCE_COUNTING)
51716#if defined(DUK_USE_REFERENCE_COUNTING)
51719#if defined(DUK_USE_DEBUG)
51720 if (had_zero_refcount) {
51722 "finalized object's refcount is zero -> free immediately (refcount queued)"));
51725 "finalized object's refcount is zero -> free immediately (mark-and-sweep queued)"));
51732#if defined(DUK_USE_REFERENCE_COUNTING)
51734 if (had_zero_refcount) {
51750 DUK_D(
DUK_DPRINT(
"skip finalizers flag set, queue object to heap_allocated without finalizing"));
51752#if defined(DUK_USE_REFERENCE_COUNTING)
51766#if defined(DUK_USE_REFERENCE_COUNTING)
51791#if defined(DUK_USE_DEBUG)
51795#if defined(DUK_USE_ASSERTIONS)
51796 DUK_ASSERT(heap->currently_finalizing != NULL);
51797 heap->currently_finalizing = NULL;
51818#if defined(DUK_USE_DEBUG)
51872#if defined(DUK_USE_ASSERTIONS)
51876 DUK_DD(
DUK_DDPRINT(
"running duk_hobject finalizer for object: %p", (
void *) obj));
51884#if defined(DUK_USE_ASSERTIONS)
51904 DUK_D(
DUK_DPRINT(
"object already finalized, avoid running finalizer twice: %!O", obj));
51910#if defined(DUK_USE_ES6_PROXY)
51930 DUK_D(
DUK_DPRINT(
"wrapped finalizer call failed for object %p (ignored); error: %!T",
51965#if defined(DUK_USE_STRHASH_DENSE)
51967#define DUK__STRHASH_SHORTSTRING 4096L
51968#define DUK__STRHASH_MEDIUMSTRING (256L * 1024L)
51969#define DUK__STRHASH_BLOCKSIZE 256L
51992 duk_uint32_t str_seed = heap->
hash_seed ^ ((duk_uint32_t) len);
51994 if (len <= DUK__STRHASH_SHORTSTRING) {
51995 hash = duk_util_hashbytes(str, len, str_seed);
52000 if (len <= DUK__STRHASH_MEDIUMSTRING) {
52001 skip = (
duk_size_t) (16 * DUK__STRHASH_BLOCKSIZE + DUK__STRHASH_BLOCKSIZE);
52003 skip = (
duk_size_t) (256 * DUK__STRHASH_BLOCKSIZE + DUK__STRHASH_BLOCKSIZE);
52006 hash = duk_util_hashbytes(str, (
duk_size_t) DUK__STRHASH_SHORTSTRING, str_seed);
52007 off = DUK__STRHASH_SHORTSTRING + (skip * (hash % 256)) / 256;
52010 while (off < len) {
52012 duk_size_t now = (
duk_size_t) (left > DUK__STRHASH_BLOCKSIZE ? DUK__STRHASH_BLOCKSIZE : left);
52013 hash ^= duk_util_hashbytes(str + off, now, str_seed);
52018#if defined(DUK_USE_STRHASH16)
52022 hash &= 0x0000ffffUL;
52044 hash = heap->
hash_seed ^ ((duk_uint32_t) len);
52046 for (off = len; off >= step; off -= step) {
52048 hash = (hash * 33) + str[off - 1];
52051#if defined(DUK_USE_STRHASH16)
52055 hash &= 0x0000ffffUL;
52062#undef DUK__STRHASH_BLOCKSIZE
52063#undef DUK__STRHASH_MEDIUMSTRING
52064#undef DUK__STRHASH_SHORTSTRING
52151 while (tv < tv_end) {
52158 while (fn < fn_end) {
52175#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
52188#if defined(DUK_USE_ES6_PROXY)
52203 while (tv < t->valstack_top) {
52212#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
52216 for (cat = act->
cat; cat != NULL; cat = cat->
parent) {
52249#if defined(DUK_USE_ASSERTIONS) && defined(DUK_USE_REFERENCE_COUNTING)
52251 h->h_assert_refcount++;
52258#if defined(DUK_USE_ROM_OBJECTS)
52268 DUK_D(
DUK_DPRINT(
"mark-and-sweep recursion limit reached, marking as temproot: %p", (
void *) h));
52313 while (
count-- > 0) {
52353#if defined(DUK_USE_DEBUGGER_SUPPORT)
52354 for (i = 0; i < heap->dbg_breakpoint_count; i++) {
52372#if defined(DUK_USE_FINALIZER_SUPPORT)
52382 while (hdr != NULL) {
52400 "finalized -> mark as finalizable "
52401 "and treat as a reachability root: %p",
52405 count_finalizable++;
52411 if (count_finalizable == 0) {
52415 DUK_DD(
DUK_DDPRINT(
"marked %ld heap objects as finalizable, now mark them reachable", (
long) count_finalizable));
52418 while (hdr != NULL) {
52434#if defined(DUK_USE_FINALIZER_SUPPORT)
52437#if defined(DUK_USE_DEBUG)
52444 while (hdr != NULL) {
52447#if defined(DUK_USE_DEBUG)
52448 count_finalize_list++;
52452#if defined(DUK_USE_DEBUG)
52453 if (count_finalize_list > 0) {
52454 DUK_D(
DUK_DPRINT(
"marked %ld objects on the finalize_list as reachable (previous finalizer run skipped)",
52455 (
long) count_finalize_list));
52478#if defined(DUK_USE_DEBUG)
52493#if defined(DUK_USE_ASSERTIONS) && defined(DUK_USE_REFERENCE_COUNTING)
52494 hdr->h_assert_refcount--;
52498#if defined(DUK_USE_DEBUG)
52505#if defined(DUK_USE_DEBUG)
52512 DUK_DD(
DUK_DDPRINT(
"recursion limit reached, doing heap scan to continue from temproots"));
52514#if defined(DUK_USE_DEBUG)
52521#if defined(DUK_USE_DEBUG)
52529#if defined(DUK_USE_FINALIZER_SUPPORT)
52532#if defined(DUK_USE_DEBUG)
52541#if defined(DUK_USE_DEBUG)
52556#if defined(DUK_USE_REFERENCE_COUNTING)
52577 DUK_DDD(
DUK_DDDPRINT(
"unreachable object, refcount finalize before sweeping: %p", (
void *) hdr));
52602#if defined(DUK_USE_FINALIZER_SUPPORT)
52611#if defined(DUK_USE_ASSERTIONS)
52629#if defined(DUK_USE_DEBUG)
52636#if defined(DUK_USE_STRTAB_PTRCOMP)
52637 if (heap->strtable16 == NULL) {
52644 for (i = 0; i < heap->
st_size; i++) {
52645#if defined(DUK_USE_STRTAB_PTRCOMP)
52646 h = DUK_USE_HEAPPTR_DEC16(heap->
heap_udata, heap->strtable16[i]);
52651 while (h != NULL) {
52660#if defined(DUK_USE_DEBUG)
52676#if defined(DUK_USE_REFERENCE_COUNTING)
52705#if defined(DUK_USE_DEBUG)
52706 DUK_D(
DUK_DPRINT(
"mark-and-sweep sweep stringtable: %ld freed, %ld kept", (
long) count_free, (
long) count_keep));
52708 *out_count_keep = count_keep;
52719#if defined(DUK_USE_DEBUG)
52752#if defined(DUK_USE_FINALIZER_SUPPORT)
52756 DUK_DD(
DUK_DDPRINT(
"sweep; reachable, finalizable --> move to finalize_list: %p", (
void *) curr));
52758#if defined(DUK_USE_REFERENCE_COUNTING)
52763#if defined(DUK_USE_DEBUG)
52774 DUK_DD(
DUK_DDPRINT(
"sweep; reachable, finalized, but postponing rescue decisions "
52775 "--> keep object (with FINALIZED set): %!iO",
52779 DUK_DD(
DUK_DDPRINT(
"sweep; reachable, finalized --> rescued after finalization: %p",
52781#if defined(DUK_USE_FINALIZER_SUPPORT)
52784#if defined(DUK_USE_DEBUG)
52793 if (prev != NULL) {
52800#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
52838#if defined(DUK_USE_REFERENCE_COUNTING)
52847#if defined(DUK_USE_DEBUG)
52849 DUK_DD(
DUK_DDPRINT(
"sweep; unreachable, finalized --> finalized object not rescued: %p",
52862#if defined(DUK_USE_DEBUG)
52877 if (prev != NULL) {
52882#if defined(DUK_USE_DEBUG)
52883 DUK_D(
DUK_DPRINT(
"mark-and-sweep sweep objects (non-string): %ld freed, %ld kept, %ld rescued, %ld queued for finalization",
52886 (
long) count_rescue,
52887 (
long) count_finalize));
52889 *out_count_keep = count_keep;
52896#if defined(DUK_USE_LITCACHE_SIZE)
52928#if defined(DUK_USE_DEBUG)
52939#if defined(DUK_USE_DEBUG)
52955#if defined(DUK_USE_DEBUG)
52965#if defined(DUK_USE_DEBUG)
52970#if defined(DUK_USE_DEBUG)
52971 (*p_count_compact)++;
52972 (*p_count_bytes_saved) += (
duk_size_t) (old_size - new_size);
52977#if defined(DUK_USE_DEBUG)
52978 (*p_count_check)++;
52985#if defined(DUK_USE_DEBUG)
52995#if defined(DUK_USE_DEBUG)
52997#if defined(DUK_USE_FINALIZER_SUPPORT)
53002#if defined(DUK_USE_FINALIZER_SUPPORT)
53006#if defined(DUK_USE_REFERENCE_COUNTING)
53010#if defined(DUK_USE_DEBUG)
53011 DUK_D(
DUK_DPRINT(
"mark-and-sweep compact objects: %ld checked, %ld compaction attempts, %ld bytes saved by compaction",
53012 (
long) count_check,
53013 (
long) count_compact,
53014 (
long) count_bytes_saved));
53022#if defined(DUK_USE_ASSERTIONS)
53033DUK_LOCAL void duk__assert_walk_strtable(
duk_heap *heap, duk__gc_hstring_assert func) {
53036 for (i = 0; i < heap->
st_size; i++) {
53039#if defined(DUK_USE_STRTAB_PTRCOMP)
53040 h = DUK_USE_HEAPPTR_DEC16(heap->
heap_udata, heap->strtable16[i]);
53044 while (h != NULL) {
53059 duk__assert_walk_list(heap, heap->
heap_allocated, duk__assert_heaphdr_flags_cb);
53060#if defined(DUK_USE_REFERENCE_COUNTING)
53069 duk_heaphdr_assert_valid_subclassed(h);
53074 duk_heaphdr_assert_valid_subclassed((
duk_heaphdr *) h);
53077 duk__assert_walk_list(heap, heap->
heap_allocated, duk__assert_validity_cb1);
53078#if defined(DUK_USE_FINALIZER_SUPPORT)
53079 duk__assert_walk_list(heap, heap->
finalize_list, duk__assert_validity_cb1);
53081#if defined(DUK_USE_REFERENCE_COUNTING)
53082 duk__assert_walk_list(heap, heap->
refzero_list, duk__assert_validity_cb1);
53084 duk__assert_walk_strtable(heap, duk__assert_validity_cb2);
53087#if defined(DUK_USE_REFERENCE_COUNTING)
53109 duk__assert_walk_list(heap, heap->
heap_allocated, duk__assert_valid_refcounts_cb);
53114 h->h_assert_refcount = 0;
53121 duk__assert_walk_list(heap, heap->
heap_allocated, duk__clear_assert_refcounts_cb1);
53122#if defined(DUK_USE_FINALIZER_SUPPORT)
53123 duk__assert_walk_list(heap, heap->
finalize_list, duk__clear_assert_refcounts_cb1);
53125#if defined(DUK_USE_REFERENCE_COUNTING)
53126 duk__assert_walk_list(heap, heap->
refzero_list, duk__clear_assert_refcounts_cb1);
53128 duk__assert_walk_strtable(heap, duk__clear_assert_refcounts_cb2);
53150 expect_refc = hdr->h_assert_refcount;
53156 DUK_D(
DUK_DPRINT(
"refcount mismatch for: %p: header=%ld counted=%ld --> %!iO",
53159 (
long) hdr->h_assert_refcount,
53167 duk__check_refcount_heaphdr(h);
53174 duk__assert_walk_list(heap, heap->
heap_allocated, duk__check_assert_refcounts_cb1);
53175#if defined(DUK_USE_FINALIZER_SUPPORT)
53176 duk__assert_walk_list(heap, heap->
finalize_list, duk__check_assert_refcounts_cb1);
53179 duk__assert_walk_strtable(heap, duk__check_assert_refcounts_cb2);
53183#if defined(DUK_USE_LITCACHE_SIZE)
53204#if defined(DUK_USE_DEBUG)
53206 DUK_D(
DUK_DPRINT(
"stats executor: opcodes=%ld, interrupt=%ld, throw=%ld",
53207 (
long) heap->stats_exec_opcodes,
53208 (
long) heap->stats_exec_interrupt,
53209 (
long) heap->stats_exec_throw));
53210 DUK_D(
DUK_DPRINT(
"stats call: all=%ld, tailcall=%ld, ecmatoecma=%ld",
53211 (
long) heap->stats_call_all,
53212 (
long) heap->stats_call_tailcall,
53213 (
long) heap->stats_call_ecmatoecma));
53215 (
long) heap->stats_safecall_all,
53216 (
long) heap->stats_safecall_nothrow,
53217 (
long) heap->stats_safecall_throw));
53218 DUK_D(
DUK_DPRINT(
"stats mark-and-sweep: try_count=%ld, skip_count=%ld, emergency_count=%ld",
53219 (
long) heap->stats_ms_try_count,
53220 (
long) heap->stats_ms_skip_count,
53221 (
long) heap->stats_ms_emergency_count));
53222 DUK_D(
DUK_DPRINT(
"stats stringtable: intern_hit=%ld, intern_miss=%ld, "
53223 "resize_check=%ld, resize_grow=%ld, resize_shrink=%ld, "
53224 "litcache_hit=%ld, litcache_miss=%ld, litcache_pin=%ld",
53225 (
long) heap->stats_strtab_intern_hit,
53226 (
long) heap->stats_strtab_intern_miss,
53227 (
long) heap->stats_strtab_resize_check,
53228 (
long) heap->stats_strtab_resize_grow,
53229 (
long) heap->stats_strtab_resize_shrink,
53230 (
long) heap->stats_strtab_litcache_hit,
53231 (
long) heap->stats_strtab_litcache_miss,
53232 (
long) heap->stats_strtab_litcache_pin));
53233 DUK_D(
DUK_DPRINT(
"stats object: realloc_props=%ld, abandon_array=%ld",
53234 (
long) heap->stats_object_realloc_props,
53235 (
long) heap->stats_object_abandon_array));
53236 DUK_D(
DUK_DPRINT(
"stats getownpropdesc: count=%ld, hit=%ld, miss=%ld",
53237 (
long) heap->stats_getownpropdesc_count,
53238 (
long) heap->stats_getownpropdesc_hit,
53239 (
long) heap->stats_getownpropdesc_miss));
53241 (
long) heap->stats_getpropdesc_count,
53242 (
long) heap->stats_getpropdesc_hit,
53243 (
long) heap->stats_getpropdesc_miss));
53244 DUK_D(
DUK_DPRINT(
"stats getprop: all=%ld, arrayidx=%ld, bufobjidx=%ld, "
53245 "bufferidx=%ld, bufferlen=%ld, stringidx=%ld, stringlen=%ld, "
53246 "proxy=%ld, arguments=%ld",
53247 (
long) heap->stats_getprop_all,
53248 (
long) heap->stats_getprop_arrayidx,
53249 (
long) heap->stats_getprop_bufobjidx,
53250 (
long) heap->stats_getprop_bufferidx,
53251 (
long) heap->stats_getprop_bufferlen,
53252 (
long) heap->stats_getprop_stringidx,
53253 (
long) heap->stats_getprop_stringlen,
53254 (
long) heap->stats_getprop_proxy,
53255 (
long) heap->stats_getprop_arguments));
53256 DUK_D(
DUK_DPRINT(
"stats putprop: all=%ld, arrayidx=%ld, bufobjidx=%ld, "
53257 "bufferidx=%ld, proxy=%ld",
53258 (
long) heap->stats_putprop_all,
53259 (
long) heap->stats_putprop_arrayidx,
53260 (
long) heap->stats_putprop_bufobjidx,
53261 (
long) heap->stats_putprop_bufferidx,
53262 (
long) heap->stats_putprop_proxy));
53263 DUK_D(
DUK_DPRINT(
"stats getvar: all=%ld", (
long) heap->stats_getvar_all));
53264 DUK_D(
DUK_DPRINT(
"stats putvar: all=%ld", (
long) heap->stats_putvar_all));
53265 DUK_D(
DUK_DPRINT(
"stats envrec: delayedcreate=%ld, create=%ld, newenv=%ld, oldenv=%ld, pushclosure=%ld",
53266 (
long) heap->stats_envrec_delayedcreate,
53267 (
long) heap->stats_envrec_create,
53268 (
long) heap->stats_envrec_newenv,
53269 (
long) heap->stats_envrec_oldenv,
53270 (
long) heap->stats_envrec_pushclosure));
53285#if defined(DUK_USE_VOLUNTARY_GC)
53291#if defined(DUK_USE_DEBUG)
53321 DUK_D(
DUK_DPRINT(
"garbage collect (mark-and-sweep) starting, requested flags: 0x%08lx, effective flags: 0x%08lx",
53322 (
unsigned long) flags,
53326#if defined(DUK_USE_FINALIZER_SUPPORT)
53336#if defined(DUK_USE_ASSERTIONS)
53342 duk__assert_heaphdr_flags(heap);
53343 duk__assert_validity(heap);
53344#if defined(DUK_USE_REFERENCE_COUNTING)
53348 duk__assert_valid_refcounts(heap);
53388#if defined(DUK_USE_ASSERTIONS) && defined(DUK_USE_REFERENCE_COUNTING)
53389 duk__clear_assert_refcounts(heap);
53391#if defined(DUK_USE_LITCACHE_SIZE)
53395#if defined(DUK_USE_REFERENCE_COUNTING)
53400#if defined(DUK_USE_FINALIZER_SUPPORT)
53422#if defined(DUK_USE_REFERENCE_COUNTING)
53427#if defined(DUK_USE_ASSERTIONS) && defined(DUK_USE_REFERENCE_COUNTING)
53428 duk__check_assert_refcounts(heap);
53430#if defined(DUK_USE_REFERENCE_COUNTING)
53433#if defined(DUK_USE_FINALIZER_SUPPORT)
53460 DUK_D(
DUK_DPRINT(
"lj.type (%ld) not DUK_LJ_TYPE_UNKNOWN, skip object compaction", (
long) heap->
lj.
type));
53497#if defined(DUK_USE_ASSERTIONS)
53501 duk__assert_heaphdr_flags(heap);
53502 duk__assert_validity(heap);
53503#if defined(DUK_USE_REFERENCE_COUNTING)
53507 duk__assert_valid_refcounts(heap);
53509#if defined(DUK_USE_LITCACHE_SIZE)
53510 duk__assert_litcache_nulls(heap);
53518#if defined(DUK_USE_VOLUNTARY_GC)
53519 tmp = (count_keep_obj + count_keep_str) / 256;
53521 DUK_D(
DUK_DPRINT(
"garbage collect (mark-and-sweep) finished: %ld objects kept, %ld strings kept, trigger reset to %ld",
53522 (
long) count_keep_obj,
53523 (
long) count_keep_str,
53526 DUK_D(
DUK_DPRINT(
"garbage collect (mark-and-sweep) finished: %ld objects kept, %ld strings kept, no voluntary trigger",
53527 (
long) count_keep_obj,
53528 (
long) count_keep_str));
53535#if defined(DUK_USE_DEBUG)
53536 duk__dump_stats(heap);
53566#if defined(DUK_USE_FINALIZER_SUPPORT)
53597 DUK_D(
DUK_DPRINT(
"first alloc attempt failed or voluntary GC limit reached, attempt to gc and retry"));
53608 DUK_D(
DUK_DPRINT(
"duk_heap_mem_alloc() failed, gc in progress (gc skipped), alloc size %ld", (
long) size));
53632 DUK_D(
DUK_DPRINT(
"duk_heap_mem_alloc() succeeded after gc (pass %ld), alloc size %ld",
53639 DUK_D(
DUK_DPRINT(
"duk_heap_mem_alloc() failed even after gc, alloc size %ld", (
long) size));
53650#if defined(DUK_USE_VOLUNTARY_GC)
53657#if defined(DUK_USE_GC_TORTURE)
53681 DUK_D(
DUK_DPRINT(
"first alloc attempt returned NULL for zero size alloc, use slow path to deal with it"));
53683 DUK_D(
DUK_DPRINT(
"first alloc attempt failed, attempt to gc and retry"));
53712 }
else if (size == 0) {
53731 }
else if (size == 0) {
53755 DUK_D(
DUK_DPRINT(
"first realloc attempt failed, attempt to gc and retry"));
53763 DUK_D(
DUK_DPRINT(
"duk_heap_mem_realloc() failed, gc in progress (gc skipped), alloc size %ld", (
long) newsize));
53785 if (res != NULL || newsize == 0) {
53786 DUK_D(
DUK_DPRINT(
"duk_heap_mem_realloc() succeeded after gc (pass %ld), alloc size %ld",
53793 DUK_D(
DUK_DPRINT(
"duk_heap_mem_realloc() failed even after gc, alloc size %ld", (
long) newsize));
53805#if defined(DUK_USE_VOLUNTARY_GC)
53812#if defined(DUK_USE_GC_TORTURE)
53825 if (
DUK_LIKELY(res != NULL) || newsize == 0) {
53826 if (res != NULL && newsize == 0) {
53827 DUK_DD(
DUK_DDPRINT(
"first realloc attempt returned NULL for zero size realloc, accept and return NULL"));
53859 DUK_D(
DUK_DPRINT(
"first indirect realloc attempt failed, attempt to gc and retry"));
53867 DUK_D(
DUK_DPRINT(
"duk_heap_mem_realloc_indirect() failed, gc in progress (gc skipped), alloc size %ld", (
long) newsize));
53881#if defined(DUK_USE_DEBUG)
53886#if defined(DUK_USE_DEBUG)
53887 ptr_pre = cb(heap, ud);
53895#if defined(DUK_USE_DEBUG)
53896 ptr_post = cb(heap, ud);
53897 if (ptr_pre != ptr_post) {
53900 (
void *) ptr_post));
53909 if (res != NULL || newsize == 0) {
53910 DUK_D(
DUK_DPRINT(
"duk_heap_mem_realloc_indirect() succeeded after gc (pass %ld), alloc size %ld",
53917 DUK_D(
DUK_DPRINT(
"duk_heap_mem_realloc_indirect() failed even after gc, alloc size %ld", (
long) newsize));
53931#if defined(DUK_USE_VOLUNTARY_GC)
53938#if defined(DUK_USE_GC_TORTURE)
53943 DUK_DDD(
DUK_DDDPRINT(
"gc torture enabled, pretend that first indirect realloc attempt fails"));
53951 if (
DUK_LIKELY(res != NULL) || newsize == 0) {
53952 if (res != NULL && newsize == 0) {
53954 "first indirect realloc attempt returned NULL for zero size realloc, accept and return NULL"));
53997#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
53998 if (
root != NULL) {
54010#if defined(DUK_USE_REFERENCE_COUNTING)
54022#if defined(DUK_USE_ASSERTIONS)
54038 if (prev != NULL) {
54045 if (next != NULL) {
54053#if defined(DUK_USE_FINALIZER_SUPPORT)
54058#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
54060 if (
root != NULL) {
54072#if defined(DUK_USE_FINALIZER_SUPPORT)
54074#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
54080 if (next != NULL) {
54084 if (prev == NULL) {
54118#if defined(DUK_USE_ASSERTIONS)
54132#if defined(DUK_USE_INTERRUPT_COUNTER)
54138 if (new_thr != NULL) {
54140 if (curr_thr == NULL) {
54144 DUK_DD(
DUK_DDPRINT(
"switch thread, initial entry, init default interrupt counter"));
54151#if defined(DUK_USE_DEBUG)
54152 if (new_thr != curr_thr) {
54153 DUK_DD(
DUK_DDPRINT(
"switch thread, not initial entry, copy interrupt counter"));
54160 DUK_DD(
DUK_DDPRINT(
"switch thread, new thread is NULL, no interrupt counter changes"));
54167#if defined(DUK_USE_ASSERTIONS)
54182#if defined(DUK_USE_REFERENCE_COUNTING)
54184#if !defined(DUK_USE_DOUBLE_LINKED_HEAP)
54185#error internal error, reference counting requires a double linked heap
54209 while (
count-- > 0) {
54222 duk_uint8_t *p_flag;
54247 h_getset = p_val[n].
a.
get;
54250 h_getset = p_val[n].
a.
set;
54255 tv_val = &p_val[n].
v;
54303 while (tv < tv_end) {
54310 while (funcs < funcs_end) {
54336#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
54349#if defined(DUK_USE_ES6_PROXY)
54364 while (tv < t->valstack_top) {
54373#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
54377 for (cat = act->
cat; cat != NULL; cat = cat->
parent) {
54458#if defined(DUK_USE_DEBUG)
54474#if defined(DUK_USE_DEBUG)
54495 }
while (curr != NULL);
54517#if defined(DUK_USE_ASSERTIONS)
54523#if defined(DUK_USE_FINALIZER_SUPPORT)
54535 DUK_D(
DUK_DPRINT(
"refzero'd object has finalizer and FINALIZED is set -> free"));
54544#if defined(DUK_USE_REFERENCE_COUNTING)
54562 if (!skip_free_pending && heap->
refzero_list == NULL) {
54578 if (
root == NULL) {
54592#if defined(DUK_USE_FINALIZER_SUPPORT)
54608#if defined(DUK_USE_FINALIZER_SUPPORT)
54688#define DUK__RZ_SUPPRESS_ASSERT1() \
54690 DUK_ASSERT(thr != NULL); \
54691 DUK_ASSERT(thr->heap != NULL); \
54693 DUK_ASSERT(thr->heap->ms_running == 0 || thr->heap->heap_thread != NULL); \
54701 DUK_ASSERT(!(thr->heap->ms_running == 1 && thr != thr->heap->heap_thread)); \
54706 DUK_ASSERT(thr->heap->heap_initializing == 0 || thr->heap->ms_prevent_count > 0); \
54707 DUK_ASSERT(thr->heap->heap_initializing == 0 || thr->heap->pf_prevent_count > 0); \
54710#if defined(DUK_USE_DEBUGGER_SUPPORT)
54711#define DUK__RZ_SUPPRESS_ASSERT2() \
54714 DUK_ASSERT(!DUK_HEAP_HAS_DEBUGGER_PAUSED(thr->heap) || thr->heap->ms_running != 0); \
54716#define DUK__RZ_SUPPRESS_COND() (heap->ms_running != 0)
54718#define DUK__RZ_SUPPRESS_ASSERT2() \
54721#define DUK__RZ_SUPPRESS_COND() (heap->ms_running != 0)
54724#define DUK__RZ_SUPPRESS_CHECK() \
54726 DUK__RZ_SUPPRESS_ASSERT1(); \
54727 DUK__RZ_SUPPRESS_ASSERT2(); \
54728 if (DUK_UNLIKELY(DUK__RZ_SUPPRESS_COND())) { \
54730 DUK_DDDPRINT("refzero handling suppressed (not even queued) when mark-and-sweep running, object: %p", \
54736#define DUK__RZ_STRING() \
54738 duk__refcount_refzero_hstring(heap, (duk_hstring *) h); \
54740#define DUK__RZ_BUFFER() \
54742 duk__refcount_refzero_hbuffer(heap, (duk_hbuffer *) h); \
54744#define DUK__RZ_OBJECT() \
54746 duk__refcount_refzero_hobject(heap, (duk_hobject *) h, skip_free_pending); \
54750#if defined(DUK_USE_FAST_REFCOUNT_DEFAULT)
54751#define DUK__RZ_INLINE DUK_ALWAYS_INLINE
54753#define DUK__RZ_INLINE
54856#if !defined(DUK_USE_FAST_REFCOUNT_DEFAULT)
54885 duk_heaphdr_decref(thr, h);
54905 duk_heaphdr_decref_norz(thr, h);
54911#define DUK__DECREF_ASSERTS() \
54913 DUK_ASSERT(thr != NULL); \
54914 DUK_ASSERT(thr->heap != NULL); \
54915 DUK_ASSERT(h != NULL); \
54916 DUK_ASSERT(DUK_HEAPHDR_HTYPE_VALID((duk_heaphdr *) h)); \
54917 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT((duk_heaphdr *) h) >= 1); \
54919#if defined(DUK_USE_ROM_OBJECTS)
54920#define DUK__INCREF_SHARED() \
54922 if (DUK_HEAPHDR_HAS_READONLY((duk_heaphdr *) h)) { \
54925 DUK_HEAPHDR_PREINC_REFCOUNT((duk_heaphdr *) h); \
54926 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT((duk_heaphdr *) h) != 0); \
54928#define DUK__DECREF_SHARED() \
54930 if (DUK_HEAPHDR_HAS_READONLY((duk_heaphdr *) h)) { \
54933 if (DUK_HEAPHDR_PREDEC_REFCOUNT((duk_heaphdr *) h) != 0) { \
54938#define DUK__INCREF_SHARED() \
54940 DUK_HEAPHDR_PREINC_REFCOUNT((duk_heaphdr *) h); \
54941 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT((duk_heaphdr *) h) != 0); \
54943#define DUK__DECREF_SHARED() \
54945 if (DUK_HEAPHDR_PREDEC_REFCOUNT((duk_heaphdr *) h) != 0) { \
54951#if !defined(DUK_USE_FAST_REFCOUNT_DEFAULT)
54989 duk_hstring_refzero_norz(thr, h);
54999 duk_hbuffer_refzero_norz(thr, h);
55020#undef DUK__DECREF_ASSERTS
55021#undef DUK__DECREF_SHARED
55022#undef DUK__INCREF_SHARED
55023#undef DUK__RZ_BUFFER
55024#undef DUK__RZ_INLINE
55025#undef DUK__RZ_OBJECT
55026#undef DUK__RZ_STRING
55027#undef DUK__RZ_SUPPRESS_ASSERT1
55028#undef DUK__RZ_SUPPRESS_ASSERT2
55029#undef DUK__RZ_SUPPRESS_CHECK
55030#undef DUK__RZ_SUPPRESS_COND
55056 DUK_DDPRINT(
"deleting weak strcache reference to hstring %p from heap %p", (
void *) h, (
void *) heap));
55082 if ((*p & 0xc0) != 0x80) {
55098 if ((*p & 0xc0) != 0x80) {
55131 const duk_uint8_t *p_start;
55132 const duk_uint8_t *p_end;
55133 const duk_uint8_t *p_found;
55140 return char_offset;
55151 return char_offset;
55167 (
long) char_offset,
55176#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
55206 dist_start = char_offset;
55207 dist_end = char_length - char_offset;
55216 if (char_offset >= sce->
cidx) {
55217 dist_sce = char_offset - sce->
cidx;
55218 if ((dist_sce <= dist_start) && (dist_sce <= dist_end)) {
55220 "dist_start=%ld, dist_end=%ld, dist_sce=%ld => "
55221 "scan forwards from sce",
55223 (
void *) (sce ? sce->
h : NULL),
55224 (sce ? (
long) sce->
cidx : (
long) -1),
55225 (sce ? (
long) sce->
bidx : (
long) -1),
55234 dist_sce = sce->
cidx - char_offset;
55235 if ((dist_sce <= dist_start) && (dist_sce <= dist_end)) {
55237 "dist_start=%ld, dist_end=%ld, dist_sce=%ld => "
55238 "scan backwards from sce",
55240 (
void *) (sce ? sce->
h : NULL),
55241 (sce ? (
long) sce->
cidx : (
long) -1),
55242 (sce ? (
long) sce->
bidx : (
long) -1),
55255 if (dist_start <= dist_end) {
55257 "dist_start=%ld, dist_end=%ld, dist_sce=%ld => "
55258 "scan forwards from string start",
55260 (
void *) (sce ? sce->
h : NULL),
55261 (sce ? (
long) sce->
cidx : (
long) -1),
55262 (sce ? (
long) sce->
bidx : (
long) -1),
55270 "dist_start=%ld, dist_end=%ld, dist_sce=%ld => "
55271 "scan backwards from string end",
55273 (
void *) (sce ? sce->
h : NULL),
55274 (sce ? (
long) sce->
cidx : (
long) -1),
55275 (sce ? (
long) sce->
bidx : (
long) -1),
55295 byte_offset = (duk_uint32_t) (p_found - p_start);
55297 DUK_DDD(
DUK_DDDPRINT(
"-> string %p, cidx %ld -> bidx %ld", (
void *) h, (
long) char_offset, (
long) byte_offset));
55311 sce->
bidx = (duk_uint32_t) (p_found - p_start);
55312 sce->
cidx = (duk_uint32_t) char_offset;
55326 (
const void *) (&heap->
strcache[0]),
55327 (
size_t) (((
char *) sce) - ((
char *) &heap->
strcache[0])));
55332#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
55345 return byte_offset;
55360#define DUK__STRTAB_RESIZE_CHECK
55361#if (DUK_USE_STRTAB_MINSIZE == DUK_USE_STRTAB_MAXSIZE)
55362#undef DUK__STRTAB_RESIZE_CHECK
55365#if defined(DUK_USE_STRTAB_PTRCOMP)
55366#define DUK__HEAPPTR_ENC16(heap, ptr) DUK_USE_HEAPPTR_ENC16((heap)->heap_udata, (ptr))
55367#define DUK__HEAPPTR_DEC16(heap, val) DUK_USE_HEAPPTR_DEC16((heap)->heap_udata, (val))
55368#define DUK__GET_STRTABLE(heap) ((heap)->strtable16)
55370#define DUK__HEAPPTR_ENC16(heap, ptr) (ptr)
55371#define DUK__HEAPPTR_DEC16(heap, val) (val)
55372#define DUK__GET_STRTABLE(heap) ((heap)->strtable)
55375#define DUK__STRTAB_U32_MAX_STRLEN 10
55381#if defined(DUK_USE_DEBUG)
55383#if defined(DUK_USE_STRTAB_PTRCOMP)
55384 duk_uint16_t *strtable;
55396 if (heap == NULL) {
55402 if (strtable == NULL) {
55407 duk_memzero((
void *) count_len,
sizeof(count_len));
55408 for (i = 0; i < heap->
st_size; i++) {
55411 while (h != NULL) {
55415 if (count_chain <
sizeof(count_len) /
sizeof(
duk_size_t)) {
55416 count_len[count_chain]++;
55418 count_chain_max = (count_chain > count_chain_max ? count_chain : count_chain_max);
55419 count_chain_min = (count_chain < count_chain_min ? count_chain : count_chain_min);
55420 count_total += count_chain;
55423 DUK_D(
DUK_DPRINT(
"string table, strtab=%p, count=%lu, chain min=%lu max=%lu avg=%lf: "
55424 "counts: %lu %lu %lu %lu %lu %lu %lu %lu ...",
55426 (
unsigned long) count_total,
55427 (
unsigned long) count_chain_min,
55428 (
unsigned long) count_chain_max,
55429 (
double) count_total / (
double) heap->
st_size,
55430 (
unsigned long) count_len[0],
55431 (
unsigned long) count_len[1],
55432 (
unsigned long) count_len[2],
55433 (
unsigned long) count_len[3],
55434 (
unsigned long) count_len[4],
55435 (
unsigned long) count_len[5],
55436 (
unsigned long) count_len[6],
55437 (
unsigned long) count_len[7]));
55445#if defined(DUK_USE_ASSERTIONS)
55447#if defined(DUK_USE_STRTAB_PTRCOMP)
55448 duk_uint16_t *strtable;
55459 if (strtable != NULL) {
55463 for (i = 0; i < heap->
st_size; i++) {
55465 while (h != NULL) {
55476#if defined(DUK__STRTAB_RESIZE_CHECK)
55494 const duk_uint8_t *str,
55496 duk_uint32_t strhash,
55497 const duk_uint8_t *extdata) {
55499 const duk_uint8_t *data;
55500#if !defined(DUK_USE_HSTRING_ARRIDX)
55507#if defined(DUK_USE_STRLEN16)
55509 if (blen > 0xffffUL) {
55510 DUK_D(
DUK_DPRINT(
"16-bit string blen/clen active and blen over 16 bits, reject intern"));
55519#if defined(DUK_USE_HSTRING_EXTDATA) && defined(DUK_USE_EXTSTR_INTERN_CHECK)
55526#if defined(DUK_USE_EXPLICIT_NULL_INIT)
55537 duk_uint8_t *data_tmp;
55546#if defined(DUK_USE_EXPLICIT_NULL_INIT)
55551 data_tmp = (duk_uint8_t *) (res + 1);
55553 data_tmp[blen] = (duk_uint8_t) 0;
55554 data = (
const duk_uint8_t *) data_tmp;
55561#if defined(DUK_USE_HSTRING_ARRIDX)
55580 if (data[0] <= 0x81) {
55582 }
else if (data[0] == 0x82U || data[0] == 0xffU) {
55596#if defined(DUK_USE_HSTRING_LAZY_CLEN)
55599 duk_hstring_init_charlen(res);
55603 DUK_DDD(
DUK_DDDPRINT(
"interned string, hash=0x%08lx, blen=%ld, has_arridx=%ld, has_extdata=%ld",
55620#if defined(DUK__STRTAB_RESIZE_CHECK)
55622 duk_uint32_t new_st_size;
55623 duk_uint32_t old_st_size;
55628#if defined(DUK_USE_STRTAB_PTRCOMP)
55629 duk_uint16_t *new_ptr;
55630 duk_uint16_t *new_ptr_high;
55646 new_st_size = heap->
st_size << 1U;
55656#if defined(DUK_USE_STRTAB_PTRCOMP)
55657 new_ptr = (duk_uint16_t *)
DUK_REALLOC(heap, heap->strtable16,
sizeof(duk_uint16_t) * new_st_size);
55670#if defined(DUK_USE_STRTAB_PTRCOMP)
55671 heap->strtable16 = new_ptr;
55682 new_ptr_high = new_ptr + old_st_size;
55683 for (i = 0; i < old_st_size; i++) {
55689 new_root_high = NULL;
55692 while (h != NULL) {
55703 mask = old_st_size;
55705 if (prev != NULL) {
55725 heap->
st_mask = new_st_size - 1;
55727#if defined(DUK_USE_ASSERTIONS)
55728 duk__strtable_assert_checks(heap);
55737#if defined(DUK__STRTAB_RESIZE_CHECK)
55739 duk_uint32_t new_st_size;
55744#if defined(DUK_USE_STRTAB_PTRCOMP)
55745 duk_uint16_t *old_ptr;
55746 duk_uint16_t *old_ptr_high;
55747 duk_uint16_t *new_ptr;
55764 new_st_size = heap->
st_size >> 1U;
55770 old_ptr_high = old_ptr + new_st_size;
55771 for (i = 0; i < new_st_size; i++) {
55791 heap->
st_mask = new_st_size - 1;
55803#if defined(DUK_USE_STRTAB_PTRCOMP)
55804 new_ptr = (duk_uint16_t *)
DUK_REALLOC(heap, heap->strtable16,
sizeof(duk_uint16_t) * new_st_size);
55806 heap->strtable16 = new_ptr;
55813#if defined(DUK_USE_ASSERTIONS)
55814 duk__strtable_assert_checks(heap);
55823#if defined(DUK__STRTAB_RESIZE_CHECK)
55825 duk_uint32_t load_factor;
55828#if defined(DUK_USE_STRTAB_PTRCOMP)
55848 DUK_DD(
DUK_DDPRINT(
"resize check string table: size=%lu, count=%lu, load_factor=%lu (fixed point .4; float %lf)",
55849 (
unsigned long) heap->
st_size,
55851 (
unsigned long) load_factor,
55856 DUK_DD(
DUK_DDPRINT(
"want to grow strtable (based on load factor) but already maximum size"));
55859 (
unsigned long) heap->
st_size,
55860 (
unsigned long) heap->
st_size * 2));
55861#if defined(DUK_USE_DEBUG)
55862 duk_heap_strtable_dump(heap);
55868 DUK_DD(
DUK_DDPRINT(
"want to shrink strtable (based on load factor) but already minimum size"));
55871 (
unsigned long) heap->
st_size,
55872 (
unsigned long) heap->
st_size / 2));
55873#if defined(DUK_USE_DEBUG)
55874 duk_heap_strtable_dump(heap);
55890#if defined(DUK_USE_STRTAB_TORTURE) && defined(DUK__STRTAB_RESIZE_CHECK)
55892 duk_uint32_t old_st_size;
55903 if (heap->
st_size > old_st_size) {
55916 const duk_uint8_t *extdata;
55917#if defined(DUK_USE_STRTAB_PTRCOMP)
55918 duk_uint16_t *slot;
55923 DUK_DDD(
DUK_DDDPRINT(
"do_intern: heap=%p, str=%p, blen=%lu, strhash=%lx, st_size=%lu, st_count=%lu, load=%lf",
55925 (
const void *) str,
55926 (
unsigned long) blen,
55927 (
unsigned long) strhash,
55928 (
unsigned long) heap->st_size,
55929 (
unsigned long) heap->st_count,
55930 (
double) heap->st_count / (
double) heap->st_size));
55944 heap->pf_prevent_count++;
55947#if defined(DUK_USE_STRTAB_TORTURE) && defined(DUK__STRTAB_RESIZE_CHECK)
55948 duk__strtable_resize_torture(heap);
55963#if defined(DUK__STRTAB_RESIZE_CHECK)
55971#if defined(DUK_USE_HSTRING_EXTDATA) && defined(DUK_USE_EXTSTR_INTERN_CHECK)
55973 (
const duk_uint8_t *) DUK_USE_EXTSTR_INTERN_CHECK(heap->heap_udata, (
void *)
DUK_LOSE_CONST(str), (
duk_size_t) blen);
55975 extdata = (
const duk_uint8_t *) NULL;
55991 heap->pf_prevent_count--;
55996#if defined(DUK_USE_HSTRING_EXTDATA) && defined(DUK_USE_EXTSTR_INTERN_CHECK)
55997 if (extdata != NULL) {
55998 DUK_USE_EXTSTR_FREE(heap->heap_udata, (
const void *) extdata);
56006#if defined(DUK_USE_STRTAB_PTRCOMP)
56007 slot = heap->strtable16 + (strhash & heap->st_mask);
56009 slot = heap->strtable + (strhash & heap->st_mask);
56017#if defined(DUK__STRTAB_RESIZE_CHECK)
56041#if defined(DUK_USE_ROM_STRINGS)
56049 lookup_hash = (blen << 4);
56051 lookup_hash += str[0];
56053 lookup_hash &= 0xff;
56056 while (curr != NULL) {
56060 DUK_DDD(
DUK_DDDPRINT(
"intern check: rom string: %!O, computed hash 0x%08lx, rom hash 0x%08lx",
56062 (
unsigned long) strhash,
56074 duk_uint32_t strhash;
56077 DUK_DDD(
DUK_DDDPRINT(
"intern check: heap=%p, str=%p, blen=%lu", (
void *) heap, (
const void *) str, (
unsigned long) blen));
56091 DUK_ASSERT(heap->st_size == heap->st_mask + 1);
56092#if defined(DUK_USE_STRTAB_PTRCOMP)
56095 h = heap->strtable[strhash & heap->st_mask];
56097 while (h != NULL) {
56112#if defined(DUK_USE_ROM_STRINGS)
56113 h = duk__strtab_romstring_lookup(heap, str, blen, strhash);
56142 p = buf +
sizeof(buf);
56147 }
while (val != 0);
56177#if defined(DUK_USE_LITCACHE_SIZE)
56184 key = (duk_uintptr_t) blen ^ (duk_uintptr_t) str;
56199 if (ent->
addr == str) {
56200 DUK_DD(
DUK_DDPRINT(
"intern check for cached, pinned literal: str=%p, blen=%ld -> duk_hstring %!O",
56201 (
const void *) str,
56256#if defined(DUK_USE_REFERENCE_COUNTING)
56259#if defined(DUK_USE_STRTAB_PTRCOMP)
56260 duk_uint16_t *slot;
56276#if defined(DUK__STRTAB_RESIZE_CHECK)
56281#if defined(DUK_USE_STRTAB_PTRCOMP)
56290 while (other != h) {
56295 if (prev != NULL) {
56311#if defined(DUK_USE_STRTAB_PTRCOMP)
56312 duk_uint16_t *slot;
56326 DUK_ASSERT(prev == NULL || prev->hdr.h_next == h);
56328#if defined(DUK__STRTAB_RESIZE_CHECK)
56333 if (prev != NULL) {
56335 prev->hdr.h_next = h->hdr.h_next;
56338#if defined(DUK_USE_STRTAB_PTRCOMP)
56360#if defined(DUK__STRTAB_RESIZE_CHECK)
56361#if defined(DUK_USE_STRTAB_PTRCOMP)
56362 if (heap->strtable16 != NULL) {
56376#if defined(DUK_USE_STRTAB_PTRCOMP)
56377 duk_uint16_t *strtable;
56387#if defined(DUK_USE_ASSERTIONS)
56388 duk__strtable_assert_checks(heap);
56396 st = strtable + heap->
st_size;
56399 while (strtable != st) {
56417#undef DUK__GET_STRTABLE
56418#undef DUK__HEAPPTR_DEC16
56419#undef DUK__HEAPPTR_ENC16
56420#undef DUK__STRTAB_U32_MAX_STRLEN
56427#if defined(DUK_USE_ASSERTIONS)
56429#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
56467#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
56524#if defined(DUK_USE_EXPLICIT_NULL_INIT)
56528#if defined(DUK_USE_HEAPPTR16)
56531#if defined(DUK_USE_DOUBLE_LINKED_HEAP)
56598#if defined(DUK_USE_EXPLICIT_NULL_INIT)
56599#if defined(DUK_USE_HEAPPTR16)
56617#if defined(DUK_USE_EXPLICIT_NULL_INIT)
56638#if defined(DUK_USE_EXPLICIT_NULL_INIT)
56645#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
56650#if defined(DUK_USE_EXPLICIT_NULL_INIT)
56677#if defined(DUK_USE_EXPLICIT_NULL_INIT)
56688#if defined(DUK_USE_HEAPPTR16)
56689 res->strs16 = NULL;
56734#if defined(DUK_USE_EXPLICIT_NULL_INIT)
56750#if defined(DUK_USE_EXPLICIT_NULL_INIT)
56776#if defined(DUK_USE_ASSERTIONS)
56812#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
56828 if (h->
buf == NULL) {
56920#define DUK__ENUM_START_INDEX 2
56953#if !defined(DUK_USE_SYMBOL_BUILTIN)
56955#elif defined(DUK_USE_64BIT_OPS)
56976#if defined(DUK_USE_SYMBOL_BUILTIN)
56993 if (val_a > val_b) {
57009 if (idx_end <= idx_start + 1) {
57015 for (idx = idx_start + 1; idx < idx_end; idx++) {
57020 h_curr = keys[idx];
57029 for (idx_insert = idx - 1; idx_insert >= idx_start; idx_insert--) {
57031 h_insert = keys[idx_insert];
57042 DUK_ASSERT(idx_insert >= 0 && idx_insert <= idx);
57054 if (idx != idx_insert) {
57056 (
const void *) (keys + idx_insert),
57057 ((
size_t) (idx - idx_insert) *
sizeof(
duk_hstring *)));
57058 keys[idx_insert] = h_curr;
57096#if defined(DUK_USE_ES6_PROXY)
57130#if defined(DUK_USE_ES6_PROXY)
57153 enum_target = h_proxy_target;
57176 for (i = 0; i < len; i++) {
57197 goto compact_and_return;
57202 curr = enum_target;
57207#if !defined(DUK_USE_PREFER_SIZE)
57236#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
57254#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
57276 for (i = 0; i < len; i++) {
57352#if !defined(DUK_USE_PREFER_SIZE)
57366#if !defined(DUK_USE_PREFER_SIZE)
57400#if defined(DUK_USE_PREFER_SIZE)
57415 sort_start_index = sort_end_index;
57447#if defined(DUK_USE_ES6_PROXY)
57491#if defined(DUK_USE_ES6_PROXY)
57494 check_existence = 1;
57593 while (
count-- > 0) {
57613#undef DUK__ENUM_START_INDEX
57631 if (h == NULL || p == NULL) {
57641 if (sanity-- == 0) {
57656#if defined(DUK_USE_REFERENCE_COUNTING)
57681#if defined(DUK_USE_PC2LINE)
57699 curr_offset = (
duk_uint_fast32_t) (
sizeof(duk_uint32_t) + num_header_entries *
sizeof(duk_uint32_t) * 2);
57707 hdr[0] = (duk_uint32_t) length;
57710 while (curr_pc < length) {
57719 hdr[hdr_index + 0] = (duk_uint32_t) curr_line;
57720 hdr[hdr_index + 1] = (duk_uint32_t) curr_offset;
57726 (
long) hdr[hdr_index + 0],
57727 (
long) hdr[hdr_index + 1]));
57731 be_ctx->
data = ((duk_uint8_t *) hdr) + curr_offset;
57737 (curr_pc >= length)) {
57741 next_line = (duk_int32_t) instrs[curr_pc].
line;
57742 diff_line = next_line - curr_line;
57746 (
long) curr_line, (
long) next_line, (
long) diff_line));
57749 if (diff_line == 0) {
57752 }
else if (diff_line >= 1 && diff_line <= 4) {
57754 duk_be_encode(be_ctx, (duk_uint32_t) ((0x02 << 2) + (diff_line - 1)), 4);
57755 }
else if (diff_line >= -0x80 && diff_line <= 0x7f) {
57757 DUK_ASSERT(diff_line + 0x80 >= 0 && diff_line + 0x80 <= 0xff);
57758 duk_be_encode(be_ctx, (duk_uint32_t) ((0x06 << 8) + (diff_line + 0x80)), 11);
57763 duk_be_encode(be_ctx, (duk_uint32_t) ((0x07 << 16) + ((next_line >> 16) & 0xffff)), 19);
57764 duk_be_encode(be_ctx, (duk_uint32_t) (next_line & 0xffff), 16);
57767 curr_line = next_line;
57783 DUK_DDD(
DUK_DDDPRINT(
"final pc2line data: pc_limit=%ld, length=%ld, %lf bits/opcode --> %!ixT",
57786 (
double) new_size * 8.0 / (
double) length,
57818 DUK_DD(
DUK_DDPRINT(
"pc2line lookup failed: buffer is smaller than minimal header"));
57819 goto pc2line_error;
57824 if (pc >= pc_limit) {
57826 DUK_DD(
DUK_DDPRINT(
"pc2line lookup failed: pc out of bounds (pc=%ld, limit=%ld)", (
long) pc, (
long) pc_limit));
57827 goto pc2line_error;
57830 curr_line = hdr[1 + hdr_index * 2];
57831 start_offset = hdr[1 + hdr_index * 2 + 1];
57833 DUK_DD(
DUK_DDPRINT(
"pc2line lookup failed: start_offset out of bounds (start_offset=%ld, buffer_size=%ld)",
57834 (
long) start_offset,
57836 goto pc2line_error;
57844 bd_ctx->
data = ((duk_uint8_t *) hdr) + start_offset;
57848 DUK_DDD(
DUK_DDDPRINT(
"pc2line lookup: pc=%ld -> hdr_index=%ld, pc_base=%ld, n=%ld, start_offset=%ld",
57849 (
long) pc, (
long) hdr_index, (
long) pc_base, (
long) n, (
long) start_offset));
57869 curr_line = curr_line + t - 0x80;
57875 curr_line = curr_line + t + 1;
57884 DUK_DDD(
DUK_DDDPRINT(
"pc2line lookup result: pc %ld -> line %ld", (
long) pc, (
long) curr_line));
57888 DUK_D(
DUK_DPRINT(
"pc2line conversion failed for pc=%ld", (
long) pc));
57904 if (pc2line != NULL) {
57964#define DUK__NO_ARRAY_INDEX DUK_HSTRING_NO_ARRAY_INDEX
57967#define DUK__HASH_UNUSED DUK_HOBJECT_HASHIDX_UNUSED
57968#define DUK__HASH_DELETED DUK_HOBJECT_HASHIDX_DELETED
57973#define DUK__VALSTACK_SPACE 10
57978#define DUK__VALSTACK_PROXY_LOOKUP 20
58000 duk_uint32_t old_len,
58001 duk_uint32_t new_len,
58003 duk_uint32_t *out_result_len);
58011 duk_uint32_t arr_idx,
58040 idx = (duk_uint32_t) dbl;
58050#if defined(DUK_USE_FASTINT)
58067 return (duk_uint32_t) t;
58079 duk_uint32_t arr_idx;
58141#if defined(DUK_USE_HOBJECT_HASH_PART)
58155 while (tmp >= 0x40) {
58205 return (duk_uint32_t) n;
58238 *out_used = (duk_uint32_t) used;
58239 *out_min_size = (duk_uint32_t) (highest_idx + 1);
58265 duk_uint32_t new_size_min;
58288 new_size_min = arr_idx + 1;
58294 duk_uint32_t min_size;
58295 duk_uint32_t old_used;
58296 duk_uint32_t old_size;
58305 DUK_DDD(
DUK_DDDPRINT(
"abandon check, array stats: old_used=%ld, old_size=%ld, arr_idx=%ld",
58310 min_size = arr_idx + 1;
58311#if defined(DUK_USE_OBJSIZES16)
58324 "decided to abandon array part (would become too sparse)"));
58362 "fast resize without abandon check (arr_idx=%ld, old_size=%ld)",
58372 "decided to extend current allocation"));
58399#if defined(DUK_USE_ES6_PROXY)
58418 *out_handler = h_proxy->
handler;
58419 *out_target = h_proxy->
target;
58428#if defined(DUK_USE_ES6_PROXY)
58451#if defined(DUK_USE_ES6_PROXY)
58552 duk_uint32_t new_e_size,
58553 duk_uint32_t new_a_size,
58554 duk_uint32_t new_h_size,
58557 duk_uint32_t new_alloc_size;
58558 duk_uint32_t new_e_size_adjusted;
58559 duk_uint8_t *new_p;
58562 duk_uint8_t *new_e_f;
58564 duk_uint32_t *new_h;
58565 duk_uint32_t new_e_next;
58568#if defined(DUK_USE_ASSERTIONS)
58574 DUK_ASSERT(!abandon_array || new_a_size == 0);
58577 DUK_ASSERT(new_h_size == 0 || new_h_size >= new_e_size);
58589#if defined(DUK_USE_ASSERTIONS)
58602#if defined(DUK_USE_HOBJECT_LAYOUT_2) || defined(DUK_USE_HOBJECT_LAYOUT_3)
58603 DUK_DDD(
DUK_DDDPRINT(
"using layout 2 or 3, no need to pad e_size: %ld", (
long) new_e_size));
58604 new_e_size_adjusted = new_e_size;
58605#elif defined(DUK_USE_HOBJECT_LAYOUT_1) && (DUK_HOBJECT_ALIGN_TARGET == 1)
58606 DUK_DDD(
DUK_DDDPRINT(
"using layout 1, but no need to pad e_size: %ld", (
long) new_e_size));
58607 new_e_size_adjusted = new_e_size;
58608#elif defined(DUK_USE_HOBJECT_LAYOUT_1) && ((DUK_HOBJECT_ALIGN_TARGET == 4) || (DUK_HOBJECT_ALIGN_TARGET == 8))
58609 new_e_size_adjusted =
58611 DUK_DDD(
DUK_DDDPRINT(
"using layout 1, and alignment target is %ld, adjusted e_size: %ld -> %ld",
58614 (
long) new_e_size_adjusted));
58615 DUK_ASSERT(new_e_size_adjusted >= new_e_size);
58617#error invalid hobject layout defines
58625 "attempt to resize hobject %p props (%ld -> %ld bytes), from {p=%p,e_size=%ld,e_next=%ld,a_size=%ld,h_size=%ld} to "
58626 "{e_size=%ld,a_size=%ld,h_size=%ld}, abandon_array=%ld, unadjusted new_e_size=%ld",
58635 (
long) new_e_size_adjusted,
58638 (
long) abandon_array,
58639 (
long) new_e_size));
58655#if defined(DUK_USE_OBJSIZES16)
58673#if defined(DUK_USE_ASSERTIONS)
58677 prev_error_not_allowed = thr->
heap->error_not_allowed;
58678 thr->
heap->error_not_allowed = 1;
58688 if (new_alloc_size == 0) {
58703 new_p = (duk_uint8_t *)
DUK_ALLOC(thr->
heap, new_alloc_size);
58704 if (new_p == NULL) {
58721 new_e_size_adjusted,
58728 DUK_ASSERT((new_p != NULL) || (new_e_k == NULL && new_e_pv == NULL && new_e_f == NULL && new_a == NULL && new_h == NULL));
58730 DUK_DDD(
DUK_DDDPRINT(
"new alloc size %ld, new_e_k=%p, new_e_pv=%p, new_e_f=%p, new_a=%p, new_h=%p",
58731 (
long) new_alloc_size,
58746 if (abandon_array) {
58777 DUK_ASSERT(new_p != NULL && new_e_k != NULL && new_e_pv != NULL && new_e_f != NULL);
58791 goto abandon_error;
58798 goto abandon_error;
58803 goto abandon_error;
58812 new_e_k[new_e_next] = key;
58813 tv2 = &new_e_pv[new_e_next].
v;
58815 new_e_f[new_e_next] =
58825 DUK_DDD(
DUK_DDDPRINT(
"abandon array: pop %ld key temps from valstack", (
long) new_e_next));
58843 DUK_ASSERT(new_p != NULL && new_e_k != NULL && new_e_pv != NULL && new_e_f != NULL);
58845 new_e_k[new_e_next] = key;
58858#if defined(DUK_USE_ASSERTIONS)
58860 if (!abandon_array) {
58871 array_copy_size =
sizeof(
duk_tval) * new_a_size;
58874 DUK_ASSERT(new_a != NULL || array_copy_size == 0U);
58893#if defined(DUK_USE_HOBJECT_HASH_PART)
58894 if (new_h_size == 0) {
58903 duk_memset(new_h, 0xff,
sizeof(duk_uint32_t) * new_h_size);
58907 mask = new_h_size - 1;
58908 for (i = 0; i < new_e_next; i++) {
58910 duk_uint32_t j, step;
58920 new_h[j] = (duk_uint32_t) i;
58924 j = (j + step) & mask;
58937 "resized hobject %p props (%ld -> %ld bytes), from {p=%p,e_size=%ld,e_next=%ld,a_size=%ld,h_size=%ld} to "
58938 "{p=%p,e_size=%ld,e_next=%ld,a_size=%ld,h_size=%ld}, abandon_array=%ld, unadjusted new_e_size=%ld",
58941 (
long) new_alloc_size,
58948 (
long) new_e_size_adjusted,
58952 (
long) abandon_array,
58953 (
long) new_e_size));
58967 if (abandon_array) {
58976#if defined(DUK_USE_ASSERTIONS)
58978 thr->
heap->error_not_allowed = prev_error_not_allowed;
58985#if defined(DUK_USE_ASSERTIONS)
59006#if defined(DUK_USE_ASSERTIONS)
59008 thr->
heap->error_not_allowed = prev_error_not_allowed;
59020 duk_uint32_t old_e_size;
59021 duk_uint32_t new_a_size;
59022 duk_uint32_t new_h_size;
59028 if (old_e_size > new_e_size) {
59029 new_e_size = old_e_size;
59031#if defined(DUK_USE_HOBJECT_HASH_PART)
59043 duk_uint32_t old_e_used;
59044 duk_uint32_t new_e_size_minimum;
59045 duk_uint32_t new_e_size;
59046 duk_uint32_t new_a_size;
59047 duk_uint32_t new_h_size;
59060 new_e_size_minimum = old_e_used + 1;
59062#if defined(DUK_USE_HOBJECT_HASH_PART)
59069#if defined(DUK_USE_OBJSIZES16)
59080 DUK_ASSERT(new_h_size == 0 || new_h_size >= new_e_size);
59082 if (!(new_e_size >= new_e_size_minimum)) {
59092 duk_uint32_t new_e_size;
59093 duk_uint32_t new_a_size;
59094 duk_uint32_t new_a_size_minimum;
59095 duk_uint32_t new_h_size;
59103 new_a_size_minimum = highest_arr_idx + 1;
59105 DUK_ASSERT(new_a_size >= highest_arr_idx + 1);
59107#if defined(DUK_USE_OBJSIZES16)
59119 if (!(new_a_size >= new_a_size_minimum)) {
59133 duk_uint32_t new_e_size_minimum;
59134 duk_uint32_t new_e_size;
59135 duk_uint32_t new_a_size;
59136 duk_uint32_t new_h_size;
59137 duk_uint32_t e_used;
59138 duk_uint32_t a_used;
59139 duk_uint32_t a_size;
59153 new_e_size_minimum = e_used + a_used;
59156#if defined(DUK_USE_HOBJECT_HASH_PART)
59162#if defined(DUK_USE_OBJSIZES16)
59174 if (!(new_e_size >= new_e_size_minimum)) {
59180 "array stats before: e_used=%ld, a_used=%ld, a_size=%ld; "
59181 "resize to e_size=%ld, a_size=%ld, h_size=%ld",
59188 (
long) new_h_size));
59206 duk_uint32_t e_size;
59207 duk_uint32_t a_size;
59208 duk_uint32_t a_used;
59209 duk_uint32_t h_size;
59215#if defined(DUK_USE_ROM_OBJECTS)
59225 DUK_DD(
DUK_DDPRINT(
"compacting hobject, used e keys %ld, used a keys %ld, min a size %ld, "
59226 "resized array density would be: %ld/%ld = %lf",
59232 (
double) a_used / (
double) a_size));
59235 DUK_DD(
DUK_DDPRINT(
"decided to abandon array during compaction, a_used=%ld, a_size=%ld",
59246#if defined(DUK_USE_HOBJECT_HASH_PART)
59256 DUK_DD(
DUK_DDPRINT(
"compacting hobject -> new e_size %ld, new a_size=%ld, new h_size=%ld, abandon_array=%ld",
59260 (
long) abandon_array));
59296 for (i = 0; i < n; i++) {
59297 if (h_keys_base[i] == key) {
59304#if defined(DUK_USE_HOBJECT_HASH_PART)
59308 duk_uint32_t i, step;
59309 duk_uint32_t *h_base;
59337 DUK_DDDPRINT(
"lookup hit i=%ld, t=%ld -> key %p", (
long) i, (
long) t, (
void *) key));
59344 i = (i + step) & mask;
59435#if defined(DUK_USE_ASSERTIONS)
59457#if defined(DUK_USE_HOBJECT_HASH_PART)
59459 duk_uint32_t n, mask;
59460 duk_uint32_t i, step;
59469 duk_uint32_t t = h_base[i];
59471 DUK_DDD(
DUK_DDDPRINT(
"duk__hobject_alloc_entry_checked() inserted key into hash part, %ld -> %ld",
59482 i = (i + step) & mask;
59594 "(obj -> %!O, key -> %!O)",
59598 (
void *) temp_desc,
59617 DUK_DDD(
DUK_DDDPRINT(
"-> 'map' exists, and contains key, key is mapped to argument/variable binding %!T",
59633 *out_varenv = varenv;
59663 "key=%!O, varname=%!O",
59704 "key=%!O, varname=%!O, value=%!T",
59793 duk_uint32_t arr_idx,
59798 DUK_DDD(
DUK_DDDPRINT(
"duk_hobject_get_own_propdesc: thr=%p, obj=%p, key=%p, out_desc=%p, flags=%lx, "
59799 "arr_idx=%ld (obj -> %!O, key -> %!O)",
59825 out_desc->
flags = 0;
59826 out_desc->
get = NULL;
59827 out_desc->
set = NULL;
59828 out_desc->
e_idx = -1;
59829 out_desc->
h_idx = -1;
59830 out_desc->
a_idx = -1;
59844 out_desc->
a_idx = -1;
59846 out_desc->
get = NULL;
59847 out_desc->
set = NULL;
59883 out_desc->
get = NULL;
59884 out_desc->
set = NULL;
59885 out_desc->
e_idx = -1;
59886 out_desc->
h_idx = -1;
59901 goto prop_not_found;
59924 out_desc->
get = NULL;
59925 out_desc->
set = NULL;
59926 out_desc->
e_idx = -1;
59927 out_desc->
h_idx = -1;
59928 out_desc->
a_idx = -1;
59931 goto prop_found_noexotic;
59955 out_desc->
get = NULL;
59956 out_desc->
set = NULL;
59957 out_desc->
e_idx = -1;
59958 out_desc->
h_idx = -1;
59959 out_desc->
a_idx = -1;
59962 goto prop_found_noexotic;
59978 out_desc->
get = NULL;
59979 out_desc->
set = NULL;
59980 out_desc->
e_idx = -1;
59981 out_desc->
h_idx = -1;
59982 out_desc->
a_idx = -1;
59985 goto prop_found_noexotic;
59988#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
60004 if (arr_idx < (h_bufobj->
length >> h_bufobj->
shift)) {
60005 byte_off = arr_idx << h_bufobj->
shift;
60010 if (h_bufobj->
buf != NULL &&
60013 h_bufobj->
offset + byte_off;
60016 DUK_D(
DUK_DPRINT(
"bufobj access out of underlying buffer, ignoring (read zero)"));
60027 out_desc->
get = NULL;
60028 out_desc->
set = NULL;
60029 out_desc->
e_idx = -1;
60030 out_desc->
h_idx = -1;
60031 out_desc->
a_idx = -1;
60034 goto prop_found_noexotic;
60050 out_desc->
get = NULL;
60051 out_desc->
set = NULL;
60052 out_desc->
e_idx = -1;
60053 out_desc->
h_idx = -1;
60054 out_desc->
a_idx = -1;
60057 goto prop_found_noexotic;
60122prop_found_noexotic:
60160 duk_uint32_t arr_idx;
60174 DUK_DDD(
DUK_DDDPRINT(
"duk__get_propdesc: thr=%p, obj=%p, key=%p, out_desc=%p, flags=%lx, "
60175 "arr_idx=%ld (obj -> %!O, key -> %!O)",
60206 }
while (curr != NULL);
60236#if defined(DUK_USE_ARRAY_PROP_FASTPATH)
60255 "behavior, object has array part)"));
60257#if defined(DUK_USE_FASTINT)
60303 duk_uint32_t old_len, new_len;
60313#if defined(DUK_USE_FASTINT)
60338 if (idx >= old_len) {
60340 "(arr_idx=%ld, old_len=%ld)",
60367#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
60383#if defined(DUK_USE_FASTINT)
60405 byte_off = idx << h_bufobj->
shift;
60412 DUK_D(
DUK_DPRINT(
"bufobj access out of underlying buffer, ignoring (read zero)"));
60420#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
60438#if defined(DUK_USE_FASTINT)
60455 if (idx >= (h_bufobj->
length >> h_bufobj->
shift)) {
60460 byte_off = idx << h_bufobj->
shift;
60473 DUK_D(
DUK_DPRINT(
"bufobj access out of underlying buffer, ignoring (write skipped)"));
60521 tv_obj = &tv_obj_copy;
60522 tv_key = &tv_key_copy;
60533#if defined(DUK_USE_PARANOID_ERRORS)
60538 "cannot read property %s of %s",
60563#if defined(DUK_USE_FASTINT)
60566 DUK_DDD(
DUK_DDDPRINT(
"base object string, key is a fast-path fastint; arr_idx %ld", (
long) arr_idx));
60572 DUK_DDD(
DUK_DDDPRINT(
"base object string, key is a fast-path number; arr_idx %ld", (
long) arr_idx));
60578 "coercion key is %!T, arr_idx %ld",
60591 "after coercion -> return char)",
60596 if (pop_count == 0) {
60603 "coercion key is %!T, arr_idx %ld",
60614 "return string length)",
60625#if defined(DUK_USE_ARRAY_PROP_FASTPATH)
60634#if defined(DUK_USE_ARRAY_PROP_FASTPATH)
60647#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
60658#if defined(DUK_USE_ES6_PROXY)
60684 "conflicting property; tv_hook=%!T, tv_targ=%!T, desc.flags=0x%08lx, "
60685 "desc.get=%p, desc.set=%p",
60689 (
unsigned long) desc.
flags,
60691 (
void *) desc.
set));
60700 if (datadesc_reject || accdesc_reject) {
60724 "key matches magically bound property -> skip standard "
60725 "Get with replacement value)",
60751#if defined(DUK_USE_FASTINT)
60754 DUK_DDD(
DUK_DDDPRINT(
"base object buffer, key is a fast-path fastint; arr_idx %ld", (
long) arr_idx));
60760 DUK_DDD(
DUK_DDDPRINT(
"base object buffer, key is a fast-path number; arr_idx %ld", (
long) arr_idx));
60766 "coercion key is %!T, arr_idx %ld",
60777 "after coercion -> return byte as number)",
60782 if (pop_count == 0) {
60789 "coercion key is %!T, arr_idx %ld",
60800 "after coercion -> return buffer length)",
60805 DUK_DDD(
DUK_DDDPRINT(
"base object is a buffer, start lookup from Uint8Array prototype"));
60818 DUK_DDD(
DUK_DDDPRINT(
"base object is a lightfunc, start lookup from function prototype"));
60823#if defined(DUK_USE_FASTINT)
60852 goto next_in_chain;
60855 if (desc.
get != NULL) {
60862#if defined(DUK_USE_NONSTD_GETTER_KEY_ARGUMENT)
60895 }
while (curr != NULL);
60913#if !defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
60982 duk_uint32_t arr_idx;
61000 tv_key = &tv_key_copy;
61025 goto pop_and_return;
61050#if defined(DUK_USE_ES6_PROXY)
61075 "conflicting property; desc.flags=0x%08lx, "
61076 "desc.get=%p, desc.set=%p",
61078 (
unsigned long) desc.
flags,
61080 (
void *) desc.
set));
61151#if !defined(DUK_USE_PREFER_SIZE)
61152#if defined(DUK_USE_FASTINT)
61163 return (duk_uint32_t) fi;
61207 duk_uint32_t old_len,
61208 duk_uint32_t new_len,
61210 duk_uint32_t *out_result_len) {
61211 duk_uint32_t target_len;
61213 duk_uint32_t arr_idx;
61219 "probably need to remove elements",
61264 while (i > new_len) {
61270 *out_result_len = new_len;
61284 "(highest preventing non-configurable entry (if any))"));
61286 target_len = new_len;
61308 if (arr_idx < new_len) {
61315 DUK_DDD(
DUK_DDDPRINT(
"skip entry index %ld: key is a relevant array index %ld, but configurable",
61322 if (arr_idx >= target_len) {
61324 "update target_len %ld -> %ld",
61328 (
long) (arr_idx + 1)));
61329 target_len = arr_idx + 1;
61337 DUK_DDDPRINT(
"old_len=%ld, new_len=%ld, target_len=%ld", (
long) old_len, (
long) new_len, (
long) target_len));
61340 "entries >= target_len"));
61359 if (arr_idx < target_len) {
61367 DUK_DDD(
DUK_DDDPRINT(
"delete entry index %ld: key is array index %ld", (
long) i, (
long) arr_idx));
61381 DUK_DDD(
DUK_DDDPRINT(
"array length write, no array part, stage 3: update length (done by caller)"));
61383 *out_result_len = target_len;
61385 if (target_len == new_len) {
61390 "full length adjustment), return error"));
61400 duk_uint32_t old_len;
61401 duk_uint32_t new_len;
61402 duk_uint32_t result_len;
61443 if (new_len >= old_len) {
61444 DUK_DDD(
DUK_DDDPRINT(
"new length is same or higher than old length, just update length, no deletions"));
61449 DUK_DDD(
DUK_DDDPRINT(
"new length is lower than old length, probably must delete entries"));
61460 DUK_ASSERT(result_len >= new_len && result_len <= old_len);
61508 duk_uint32_t arr_idx;
61512 duk_uint32_t new_array_length = 0;
61515 "(obj -> %!T, key -> %!T, val -> %!T)",
61546 tv_obj = &tv_obj_copy;
61547 tv_key = &tv_key_copy;
61548 tv_val = &tv_val_copy;
61559#if defined(DUK_USE_PARANOID_ERRORS)
61564 "cannot write property %s of %s",
61597 goto fail_not_writable;
61601 goto fail_not_writable;
61613#if defined(DUK_USE_ROM_OBJECTS)
61621 goto fail_not_writable_no_pop;
61642#if defined(DUK_USE_ARRAY_PROP_FASTPATH)
61650#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
61658#if defined(DUK_USE_ES6_PROXY)
61674 goto fail_proxy_rejected;
61689 "conflicting property; tv_val=%!T, tv_targ=%!T, desc.flags=0x%08lx, "
61690 "desc.get=%p, desc.set=%p",
61694 (
unsigned long) desc.
flags,
61696 (
void *) desc.
set));
61704 if (datadesc_reject || accdesc_reject) {
61734#if defined(DUK_USE_FASTINT)
61737 DUK_DDD(
DUK_DDDPRINT(
"base object buffer, key is a fast-path fastint; arr_idx %ld", (
long) arr_idx));
61743 DUK_DDD(
DUK_DDDPRINT(
"base object buffer, key is a fast-path number; arr_idx %ld", (
long) arr_idx));
61749 "coercion key is %!T, arr_idx %ld",
61763#if defined(DUK_USE_FASTINT)
61781 if (pop_count == 0) {
61788 "coercion key is %!T, arr_idx %ld",
61794 goto fail_not_writable;
61797 DUK_DDD(
DUK_DDDPRINT(
"base object is a buffer, start lookup from Uint8Array prototype"));
61813 DUK_DDD(
DUK_DDDPRINT(
"base object is a lightfunc, start lookup from function prototype"));
61818#if defined(DUK_USE_FASTINT)
61848 goto next_in_chain;
61867 goto fail_no_setter;
61872#if defined(DUK_USE_NONSTD_SETTER_KEY_ARGUMENT)
61879 goto success_no_arguments_exotic;
61882 if (orig == NULL) {
61887 DUK_DD(
DUK_DDPRINT(
"attempt to create a new property in a primitive base object"));
61888 goto fail_base_primitive;
61891 if (curr != orig) {
61899 DUK_DDPRINT(
"found existing inherited plain property, but original object is not extensible"));
61900 goto fail_not_extensible;
61903 DUK_DD(
DUK_DDPRINT(
"found existing inherited plain property, original object is extensible, but "
61904 "inherited property is not writable"));
61905 goto fail_not_writable;
61907 DUK_DD(
DUK_DDPRINT(
"put to new property, object extensible, inherited property found and is writable"));
61917 DUK_DDPRINT(
"found existing own (non-inherited) plain property, but property is not writable"));
61918 goto fail_not_writable;
61921 DUK_DD(
DUK_DDPRINT(
"found existing own (non-inherited) virtual property, property is writable"));
61937 "writing existing 'length' property to array exotic, invoke complex helper"));
61948 goto fail_array_length_partial;
61952 goto success_no_arguments_exotic;
61954#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
61968 if (arr_idx < (h_bufobj->
length >> h_bufobj->
shift) &&
61975 << h_bufobj->
shift;
61986 if (h_bufobj->
buf != NULL &&
61989 h_bufobj->
offset + byte_off;
61993 "bufobj access out of underlying buffer, ignoring (write skipped)"));
61996 goto success_no_arguments_exotic;
62002 goto fail_internal;
62004 DUK_DD(
DUK_DDPRINT(
"put to existing own plain property, property is writable"));
62018 }
while (curr != NULL);
62026 if (orig == NULL) {
62027 DUK_DD(
DUK_DDPRINT(
"attempt to create a new property in a primitive base object"));
62028 goto fail_base_primitive;
62032 DUK_DD(
DUK_DDPRINT(
"put to a new property (not found in prototype chain), but original object not extensible"));
62033 goto fail_not_extensible;
62049#if defined(DUK_USE_ROM_OBJECTS)
62054 goto fail_not_writable;
62068 if (desc.
e_idx >= 0) {
62084 DUK_DD(
DUK_DDPRINT(
"put to an existing array entry at index %ld -> new value %!iT",
62093 goto success_with_arguments_exotic;
62115#if defined(DUK_USE_ROM_OBJECTS)
62120 goto fail_not_writable;
62132 duk_uint32_t old_len;
62140 if (arr_idx >= old_len) {
62142 "(arr_idx=%ld, old_len=%ld)",
62147 DUK_DD(
DUK_DDPRINT(
"attempt to extend array, but array 'length' is not writable"));
62148 goto fail_not_writable;
62158 new_array_length = arr_idx + 1;
62161 "(arr_idx=%ld, old_len=%ld)",
62182 goto write_to_entry_part;
62195 goto entry_updated;
62198write_to_entry_part:
62216 goto entry_updated;
62225 if (new_array_length > 0) {
62232 DUK_DDD(
DUK_DDDPRINT(
"write successful, pending array length update to: %ld", (
long) new_array_length));
62234 ((
duk_harray *) orig)->length = new_array_length;
62244 goto success_no_arguments_exotic;
62246success_with_arguments_exotic:
62280success_no_arguments_exotic:
62286#if defined(DUK_USE_ES6_PROXY)
62287fail_proxy_rejected:
62297fail_base_primitive:
62300#if defined(DUK_USE_PARANOID_ERRORS)
62305 "cannot write property %s of %s",
62314fail_not_extensible:
62332#if defined(DUK_USE_ROM_OBJECTS)
62333fail_not_writable_no_pop:
62342fail_array_length_partial:
62343 DUK_DD(
DUK_DDPRINT(
"result: error, array length write only partially successful"));
62377 duk_uint32_t arr_idx;
62384 DUK_DDD(
DUK_DDDPRINT(
"delprop_raw: thr=%p, obj=%p, key=%p, throw=%ld, force=%ld (obj -> %!O, key -> %!O)",
62408#if defined(DUK_USE_ROM_OBJECTS)
62411 goto fail_not_configurable;
62416 goto fail_not_configurable;
62422 DUK_DD(
DUK_DDPRINT(
"delete failed: property found, force flag, but virtual (and implicitly non-configurable)"));
62426 if (desc.
a_idx >= 0) {
62436#if defined(DUK_USE_HOBJECT_HASH_PART)
62437 if (desc.
h_idx >= 0) {
62529fail_not_configurable:
62545#if defined(DUK_USE_ES6_PROXY)
62573 goto fail_invalid_base_uncond;
62584#if defined(DUK_USE_ES6_PROXY)
62599 goto fail_proxy_rejected;
62613 DUK_DDD(
DUK_DDDPRINT(
"proxy 'deleteProperty': target has matching property %!O, check for "
62614 "conflicting property; desc.flags=0x%08lx, "
62615 "desc.get=%p, desc.set=%p",
62617 (
unsigned long) desc.
flags,
62619 (
void *) desc.
set));
62656 goto fail_not_configurable;
62660 goto fail_not_configurable;
62674 goto fail_not_configurable;
62678 goto fail_not_configurable;
62698fail_invalid_base_uncond:
62701#if defined(DUK_USE_PARANOID_ERRORS)
62706 "cannot delete property %s of %s",
62712#if defined(DUK_USE_ES6_PROXY)
62713fail_proxy_rejected:
62722fail_not_configurable:
62755 duk_uint32_t arr_idx;
62761 DUK_DDD(
DUK_DDDPRINT(
"define new property (internal): thr=%p, obj=%!O, key=%!O, flags=0x%02lx, val=%!T",
62765 (
unsigned long) flags,
62779 if (desc.
e_idx >= 0) {
62784 DUK_DDD(
DUK_DDDPRINT(
"property already exists in the entry part -> update value and attributes"));
62786 DUK_D(
DUK_DPRINT(
"existing property is an accessor, not supported"));
62787 goto error_internal;
62792 }
else if (desc.
a_idx >= 0) {
62797 DUK_DDD(
DUK_DDDPRINT(
"property already exists in the array part -> update value (assert attributes)"));
62799 DUK_D(
DUK_DPRINT(
"existing property in array part, but propflags not WEC (0x%02lx)",
62800 (
unsigned long) propflags));
62801 goto error_internal;
62811 duk_uint32_t new_len;
62812#if defined(DUK_USE_DEBUG)
62813 duk_uint32_t prev_len;
62824 goto error_virtual;
62832 DUK_DDD(
DUK_DDDPRINT(
"property does not exist, object has array part -> possibly extend array part and "
62833 "write value (assert attributes)"));
62839 goto write_to_entry_part;
62847write_to_entry_part:
62849 "property does not exist, object belongs in entry part -> allocate new entry and write value and attributes"));
62890 DUK_DDD(
DUK_DDDPRINT(
"define new property (internal) arr_idx fast path: thr=%p, obj=%!O, "
62891 "arr_idx=%ld, flags=0x%02lx, val=%!T",
62895 (
unsigned long) flags,
62906 DUK_DDD(
DUK_DDDPRINT(
"define property to array part (property may or may not exist yet)"));
62970#if defined(DUK_USE_HEAPPTR16)
62985 DUK_D(
DUK_DPRINT(
"prototype loop when checking for finalizer existence; returning false"));
62988#if defined(DUK_USE_HEAPPTR16)
62994 }
while (obj != NULL);
63183 if (is_data_desc && is_acc_desc) {
63187 *out_defprop_flags = defprop_flags;
63188 *out_idx_value = idx_value;
63189 *out_getter = getter;
63190 *out_setter = setter;
63229 duk_uint32_t arr_idx;
63243 duk_uint32_t arridx_new_array_length;
63244 duk_uint32_t arrlen_old_len;
63245 duk_uint32_t arrlen_new_len;
63271 arridx_new_array_length = 0;
63272 pending_write_protect = 0;
63273 arrlen_old_len = 0;
63274 arrlen_new_len = 0;
63277 "has_configurable=%ld is_configurable=%ld "
63278 "has_writable=%ld is_writable=%ld "
63279 "has_value=%ld value=%!T "
63280 "has_get=%ld get=%p=%!O "
63281 "has_set=%ld set=%p=%!O "
63282 "arr_idx=%ld throw_flag=!%ld",
63283 (
long) has_enumerable,
63284 (
long) is_enumerable,
63285 (
long) has_configurable,
63286 (
long) is_configurable,
63287 (
long) has_writable,
63288 (
long) is_writable,
63298 (
long) throw_flag));
63307 goto skip_array_exotic;
63315 DUK_DDD(
DUK_DDDPRINT(
"exotic array behavior for 'length', but no value in descriptor -> normal behavior"));
63316 goto skip_array_exotic;
63319 DUK_DDD(
DUK_DDDPRINT(
"exotic array behavior for 'length', value present in descriptor -> exotic behavior"));
63327 arrlen_old_len = a->
length;
63334 DUK_DDD(
DUK_DDDPRINT(
"old_len=%ld, new_len=%ld", (
long) arrlen_old_len, (
long) arrlen_new_len));
63336 if (arrlen_new_len >= arrlen_old_len) {
63339 goto skip_array_exotic;
63348 goto fail_not_configurable;
63352 if (has_writable && !is_writable) {
63353 DUK_DDD(
DUK_DDDPRINT(
"desc writable is false, force it back to true, and flag pending write protect"));
63355 pending_write_protect = 1;
63363 duk_uint32_t old_len;
63371 if (arr_idx >= old_len) {
63373 "(arr_idx=%ld, old_len=%ld)",
63382 goto fail_not_configurable;
63389 arridx_new_array_length = arr_idx + 1;
63392 "(arr_idx=%ld, old_len=%ld) -> standard behavior",
63419 goto fail_not_extensible;
63422#if defined(DUK_USE_ROM_OBJECTS)
63428 DUK_D(
DUK_DPRINT(
"attempt to define property on a read-only target object"));
63429 goto fail_not_configurable;
63439 if (has_set || has_get) {
63450 if (has_enumerable && is_enumerable) {
63453 if (has_configurable && is_configurable) {
63472 goto success_exotics;
63483 if (has_writable && is_writable) {
63486 if (has_enumerable && is_enumerable) {
63489 if (has_configurable && is_configurable) {
63502 "new data property attributes match array defaults, attempt to write to array part"));
63512 goto success_exotics;
63529 goto success_exotics;
63544 if (has_enumerable) {
63545 if (is_enumerable) {
63555 if (has_configurable) {
63556 if (is_configurable) {
63581 if (has_writable) {
63599 if (set != curr.
set) {
63608 if (get != curr.
get) {
63619 goto success_no_exotics;
63629 if (has_configurable && is_configurable) {
63630 goto fail_not_configurable;
63632 if (has_enumerable) {
63634 if (!is_enumerable) {
63635 goto fail_not_configurable;
63638 if (is_enumerable) {
63639 goto fail_not_configurable;
63659#if defined(DUK_USE_ROM_OBJECTS)
63662 goto fail_not_configurable;
63667 if (has_set || has_get) {
63675 if (has_set && set != curr.
set) {
63676 goto fail_not_configurable;
63678 if (has_get && get != curr.
get) {
63679 goto fail_not_configurable;
63688 goto fail_not_configurable;
63692 if (curr.
a_idx >= 0) {
63694 DUK_DDDPRINT(
"property to convert is stored in an array entry, abandon array and re-lookup"));
63702 if (curr.
e_idx < 0) {
63721 curr.
flags &= ~DUK_PROPDESC_FLAG_WRITABLE;
63724 }
else if (has_value || has_writable) {
63734 goto fail_not_configurable;
63739 if (curr.
e_idx < 0) {
63768 goto fail_not_configurable;
63775 goto fail_not_configurable;
63786 DUK_ASSERT(!has_value && !has_writable && !has_get && !has_set);
63796 new_flags = curr.
flags;
63798 if (has_enumerable) {
63799 if (is_enumerable) {
63802 new_flags &= ~DUK_PROPDESC_FLAG_ENUMERABLE;
63805 if (has_configurable) {
63806 if (is_configurable) {
63809 new_flags &= ~DUK_PROPDESC_FLAG_CONFIGURABLE;
63812 if (has_writable) {
63816 new_flags &= ~DUK_PROPDESC_FLAG_WRITABLE;
63822 DUK_DDD(
DUK_DDDPRINT(
"new flags that we want to write: 0x%02lx", (
unsigned long) new_flags));
63828 if (curr.
a_idx >= 0) {
63836 DUK_DDD(
DUK_DDDPRINT(
"array index, new property attributes match array defaults, update in-place"));
63848 goto success_exotics;
63852 DUK_DDDPRINT(
"array index, new property attributes do not match array defaults, abandon array and re-lookup"));
63869 if (curr.
e_idx >= 0) {
63878 DUK_DD(
DUK_DDPRINT(
"Object.defineProperty() attribute update for duk_harray .length -> %02lx",
63879 (
unsigned long) new_flags));
63882 DUK_D(
DUK_DPRINT(
"Object.defineProperty() attempt to change virtual array .length enumerable or "
63883 "configurable attribute, fail"));
63900 if (curr.
e_idx < 0) {
63916 if (curr.
e_idx < 0) {
63934 if (curr.
e_idx >= 0) {
63942 DUK_DD(
DUK_DDPRINT(
"Object.defineProperty(), value update for virtual property"));
63949 DUK_DD(
DUK_DDPRINT(
"Object.defineProperty() value update for duk_harray .length -> %ld",
63950 (
long) arrlen_new_len));
63952 a->
length = arrlen_new_len;
63985 if (arridx_new_array_length > 0) {
63994 (
long) arridx_new_array_length));
63996 a->
length = arridx_new_array_length;
64009 duk_uint32_t result_len;
64012 DUK_DDD(
DUK_DDDPRINT(
"defineProperty successful, key is 'length', exotic array behavior, "
64013 "doing array element deletion and length update"));
64019 DUK_ASSERT(result_len >= arrlen_new_len && result_len <= arrlen_old_len);
64023 if (pending_write_protect) {
64031 goto fail_not_configurable;
64044 goto success_no_exotics;
64051 if (has_set || has_get) {
64054 "changed to an accessor, delete arguments binding"));
64060 "check for value update / binding deletion"));
64066 "update bound value (variable/argument)"));
64072 "key=%!O, varname=%!O, value=%!T",
64080 if (has_writable && !is_writable) {
64082 "changed to non-writable, delete arguments binding"));
64100fail_not_extensible:
64108fail_not_configurable:
64163#if defined(DUK_USE_ROM_OBJECTS)
64192 *fp &= ~DUK_PROPDESC_FLAG_CONFIGURABLE;
64273#undef DUK__HASH_DELETED
64274#undef DUK__HASH_UNUSED
64275#undef DUK__NO_ARRAY_INDEX
64276#undef DUK__VALSTACK_PROXY_LOOKUP
64277#undef DUK__VALSTACK_SPACE
64284#if defined(DUK_USE_ASSERTIONS)
64306 const duk_uint8_t *p, *p_start, *p_end;
64323 p = p_start + boff;
64324 DUK_DDD(
DUK_DDDPRINT(
"p_start=%p, p_end=%p, p=%p", (
const void *) p_start, (
const void *) p_end, (
const void *) p));
64330 if (surrogate_aware && cp1 >= 0xd800UL && cp1 <= 0xdbffUL) {
64337 if (cp2 >= 0xdc00UL && cp2 <= 0xdfffUL) {
64338 cp1 = (
duk_ucodepoint_t) (((cp1 - 0xd800UL) << 10) + (cp2 - 0xdc00UL) + 0x10000UL);
64352#if !defined(DUK_USE_HSTRING_LAZY_CLEN)
64353#if !defined(DUK_USE_HSTRING_CLEN)
64354#error non-lazy duk_hstring charlen but DUK_USE_HSTRING_CLEN not set
64364#if defined(DUK_USE_STRLEN16)
64366 h->clen16 = (duk_uint16_t) clen;
64368 h->
clen = (duk_uint32_t) clen;
64376#if defined(DUK_USE_STRLEN16)
64388#if defined(DUK_USE_HSTRING_LAZY_CLEN)
64389#if defined(DUK_USE_HSTRING_CLEN)
64395#if defined(DUK_USE_ROM_STRINGS)
64405#if defined(DUK_USE_STRLEN16)
64407 h->clen16 = (duk_uint16_t) res;
64409 h->clen = (duk_uint32_t) res;
64431#if defined(DUK_USE_ROM_STRINGS)
64447#if defined(DUK_USE_HSTRING_CLEN)
64449#if defined(DUK_USE_STRLEN16)
64558#define DUK__PROP_FLAGS_BITS 3
64559#define DUK__LENGTH_PROP_BITS 3
64560#define DUK__NARGS_BITS 3
64561#define DUK__PROP_TYPE_BITS 3
64563#define DUK__NARGS_VARARGS_MARKER 0x07
64565#define DUK__PROP_TYPE_DOUBLE 0
64566#define DUK__PROP_TYPE_STRING 1
64567#define DUK__PROP_TYPE_STRIDX 2
64568#define DUK__PROP_TYPE_BUILTIN 3
64569#define DUK__PROP_TYPE_UNDEFINED 4
64570#define DUK__PROP_TYPE_BOOLEAN_TRUE 5
64571#define DUK__PROP_TYPE_BOOLEAN_FALSE 6
64572#define DUK__PROP_TYPE_ACCESSOR 7
64579#if defined(DUK_USE_ROM_OBJECTS)
64580#if defined(DUK_USE_ROM_GLOBAL_CLONE) || defined(DUK_USE_ROM_GLOBAL_INHERIT)
64583#if defined(DUK_USE_ROM_GLOBAL_CLONE)
64585 duk_uint8_t *props;
64592#if defined(DUK_USE_ROM_GLOBAL_INHERIT)
64599#elif defined(DUK_USE_ROM_GLOBAL_CLONE)
64635#error internal error in config defines
64688#if defined(DUK_USE_ROM_GLOBAL_CLONE) || defined(DUK_USE_ROM_GLOBAL_INHERIT)
64694 duk__duplicate_ram_global_object(thr);
64732 for (i = 0; i < 8; i++) {
64748 DUK_D(
DUK_DPRINT(
"INITBUILTINS BEGIN: DUK_NUM_BUILTINS=%d, DUK_NUM_BUILTINS_ALL=%d",
64753 bd->
data = (
const duk_uint8_t *) duk_builtins_data;
64814#if defined(DUK_USE_FUNC_NAME_PROPERTY)
64914 DUK_DDD(
DUK_DDDPRINT(
"created built-in %ld, class=%ld, length=%ld", (
long) i, (
long) class_num, (
long) len));
64973 DUK_DDD(
DUK_DDDPRINT(
"built-in object %ld, %ld normal valued properties", (
long) i, (
long) num));
64974 for (j = 0; j < num; j++) {
65002 DUK_DDD(
DUK_DDDPRINT(
"built-in %ld, normal-valued property %ld, key %!T, flags 0x%02lx, type %ld",
65006 (
unsigned long) defprop_flags,
65049 "built-in accessor property: objidx=%ld, key=%!T, getteridx=%ld, setteridx=%ld, flags=0x%04lx",
65052 (
long) natidx_getter,
65053 (
long) natidx_setter,
65054 (
unsigned long) defprop_flags));
65057 if (c_func_getter != NULL) {
65063 if (c_func_setter != NULL) {
65088 DUK_DDD(
DUK_DDDPRINT(
"built-in object %ld, %ld function valued properties", (
long) i, (
long) num));
65089 for (j = 0; j < num; j++) {
65097#if defined(DUK_USE_LIGHTFUNC_BUILTINS)
65116 DUK_DDDPRINT(
"built-in %ld, function-valued property %ld, key %!O, natidx %ld, length %ld, nargs %ld",
65122 (c_nargs ==
DUK_VARARGS ? (
long) -1 : (
long) c_nargs)));
65127#if defined(DUK_USE_LIGHTFUNC_BUILTINS)
65128 lightfunc_eligible =
65137 lightfunc_eligible = 0;
65139#if defined(DUK_USE_COROUTINE_SUPPORT)
65141 lightfunc_eligible = 0;
65146 lightfunc_eligible = 0;
65149 if (lightfunc_eligible) {
65156 DUK_D(
DUK_DPRINT(
"built-in function eligible as light function: i=%d, j=%d c_length=%ld, "
65157 "c_nargs=%ld, magic=%ld -> %!iT",
65164 goto lightfunc_skip;
65168 "built-in function NOT ELIGIBLE as light function: i=%d, j=%d c_length=%ld, c_nargs=%ld, magic=%ld",
65207 h_func->
magic = magic;
65231#if defined(DUK_USE_LIGHTFUNC_BUILTINS)
65267#if defined(DUK_USE_DATE_BUILTIN)
65275#if !defined(DUK_USE_ES6_OBJECT_PROTO_PROPERTY)
65276 DUK_DD(
DUK_DDPRINT(
"delete Object.prototype.__proto__ built-in which is not enabled in features"));
65283#if !defined(DUK_USE_ES6_OBJECT_SETPROTOTYPEOF)
65284 DUK_DD(
DUK_DDPRINT(
"delete Object.setPrototypeOf built-in which is not enabled in features"));
65294#
if defined(DUK_USE_INTEGER_LE)
65296#elif defined(DUK_USE_INTEGER_BE)
65298#elif defined(DUK_USE_INTEGER_ME)
65303#
if defined(DUK_USE_DOUBLE_LE)
65305#elif defined(DUK_USE_DOUBLE_BE)
65307#elif defined(DUK_USE_DOUBLE_ME)
65314#
if defined(DUK_USE_PACKED_TVAL)
65324#
if defined(DUK_USE_STRTAB_PTRCOMP)
65327#
if !defined(DUK_USE_HEAPPTR16) && !defined(DUK_DATAPTR16) && !defined(DUK_FUNCPTR16)
65330#
if defined(DUK_USE_HEAPPTR16)
65333#
if defined(DUK_USE_DATAPTR16)
65336#
if defined(DUK_USE_FUNCPTR16)
65339#
if defined(DUK_USE_REFCOUNT16)
65342#
if defined(DUK_USE_STRHASH16)
65345#
if defined(DUK_USE_STRLEN16)
65348#
if defined(DUK_USE_BUFLEN16)
65351#
if defined(DUK_USE_OBJSIZES16)
65354#
if defined(DUK_USE_LIGHTFUNC_BUILTINS)
65357#
if defined(DUK_USE_ROM_STRINGS) || defined(DUK_USE_ROM_OBJECTS)
65369#
if defined(DUK_USE_HOBJECT_LAYOUT_1)
65373#elif defined(DUK_USE_HOBJECT_LAYOUT_3)
65405#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 1)
65407 DUK_DD(
DUK_DDPRINT(
"built-in object %ld after initialization and compacting: %!@iO",
65434#undef DUK__LENGTH_PROP_BITS
65435#undef DUK__NARGS_BITS
65436#undef DUK__NARGS_VARARGS_MARKER
65437#undef DUK__PROP_FLAGS_BITS
65438#undef DUK__PROP_TYPE_ACCESSOR
65439#undef DUK__PROP_TYPE_BITS
65440#undef DUK__PROP_TYPE_BOOLEAN_FALSE
65441#undef DUK__PROP_TYPE_BOOLEAN_TRUE
65442#undef DUK__PROP_TYPE_BUILTIN
65443#undef DUK__PROP_TYPE_DOUBLE
65444#undef DUK__PROP_TYPE_STRIDX
65445#undef DUK__PROP_TYPE_STRING
65446#undef DUK__PROP_TYPE_UNDEFINED
65477#if defined(DUK_USE_DEBUGGER_SUPPORT)
65604#if defined(DUK_USE_CACHE_CATCHER)
65615#if defined(DUK_USE_CACHE_CATCHER)
65639#if defined(DUK_USE_CACHE_CATCHER)
65649#if defined(DUK_USE_CACHE_ACTIVATION)
65660#if defined(DUK_USE_CACHE_ACTIVATION)
65684#if defined(DUK_USE_CACHE_ACTIVATION)
65697#if defined(DUK_USE_DEBUGGER_SUPPORT)
65715#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
65735 if (act->prev_caller) {
65740 act->prev_caller = NULL;
65747 h_tmp = act->prev_caller;
65749 act->prev_caller = NULL;
65763#if defined(DUK_USE_DEBUGGER_SUPPORT)
65768 duk_debug_set_paused(heap);
65771 heap->dbg_pause_act = NULL;
65786 while (act->
cat != NULL) {
65803 goto skip_env_close;
65909#if defined(DUK_USE_FINALIZER_TORTURE)
65919 DUK_D(
DUK_DPRINT(
"skip valstack torture realloc, valstack is NULL"));
65928 if (alloc_size == 0) {
65929 DUK_D(
DUK_DPRINT(
"skip valstack torture realloc, alloc_size is zero"));
65935 if (new_ptr != NULL) {
65960#if defined(DUK_USE_POW_WORKAROUNDS)
66032#if defined(DUK_USE_POW_WORKAROUNDS)
66129#if defined(DUK_USE_NATIVE_STACK_CHECK)
66130 if (DUK_USE_NATIVE_STACK_CHECK() != 0) {
66143#define DUK__AUGMENT_CALL_RELAX_COUNT (10 + 2)
66146#define DUK__CALL_HANDLING_REQUIRE_STACK 8
66152#if defined(DUK_USE_AUGMENT_ERROR_THROW) || defined(DUK_USE_AUGMENT_ERROR_CREATE)
66155 DUK_D(
DUK_DPRINT(
"C recursion limit reached but augmenting error and within relaxed limit"));
66186#if defined(DUK_USE_AUGMENT_ERROR_THROW) || defined(DUK_USE_AUGMENT_ERROR_CREATE)
66189 DUK_D(
DUK_DPRINT(
"call stack limit reached but augmenting error and within relaxed limit"));
66199 DUK_D(
DUK_DPRINT(
"call prevented because call stack limit reached"));
66219#if defined(DUK_USE_INTERRUPT_COUNTER) && defined(DUK_USE_DEBUG)
66234#if defined(DUK_USE_INTERRUPT_DEBUG_FIXUP)
66235 if (entry_curr_thread == NULL) {
66239 "user code, instruction counts: executor=%ld, interrupt=%ld",
66240 (
long) thr->
heap->inst_count_exec,
66241 (
long) thr->
heap->inst_count_interrupt));
66284 i_argbase = idx_args;
66285 num_stack_args =
duk_get_top(thr) - i_argbase - 1;
66299 DUK_D(
DUK_DPRINT(
"_Formals is undefined when creating arguments, use n_formals == 0"));
66306 DUK_ASSERT(formals != NULL || n_formals == 0);
66335 i_mappednames = i_arg + 2;
66343 "arguments at index %ld -> %!O "
66344 "map at index %ld -> %!O "
66345 "mappednames at index %ld -> %!O",
66350 (
long) i_mappednames,
66365 idx = num_stack_args - 1;
66368 DUK_DDDPRINT(
"arg idx %ld, argbase=%ld, argidx=%ld", (
long) idx, (
long) i_argbase, (
long) (i_argbase + idx)));
66371 duk_dup(thr, i_argbase + idx);
66379 DUK_DDD(
DUK_DDDPRINT(
"strict function, index within formals (%ld < %ld)", (
long) idx, (
long) n_formals));
66487 "arguments at index %ld -> %!O "
66488 "map at index %ld -> %!O "
66489 "mappednames at index %ld -> %!O",
66494 (
long) i_mappednames,
66571 if (proto == NULL) {
66573 "-> leave standard Object prototype as fallback prototype"));
66576 "-> set fallback prototype to that value: %!iO",
66612#if defined(DUK_USE_AUGMENT_ERROR_CREATE)
66664 tv_args = h_bound->
args;
66665 len = h_bound->
nargs;
66674 if (is_constructor_call) {
66712#if defined(DUK_USE_ASSERTIONS)
66733#if defined(DUK_USE_ASSERTIONS)
66741#if defined(DUK_USE_ASSERTIONS)
66818#if defined(DUK_USE_REFLECT_BUILTIN)
66881 if (top < idx_func + 3) {
66886 if (top > idx_func + 3) {
66941#if defined(DUK_USE_ES6_PROXY)
67082#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
67119 if (act_caller != NULL) {
67134 act_callee->prev_caller = h_tmp;
67140 if (act_caller != NULL) {
67150 DUK_ASSERT(act_callee->prev_caller == NULL);
67151 if (act_caller != NULL && act_caller->
func) {
67216 DUK_D(
DUK_DPRINT(
"this binding: wanted to use global object, but it is NULL -> using undefined instead"));
67228 DUK_DDD(
DUK_DDDPRINT(
"this binding: non-strict, not object/undefined/null -> use ToObject(value)"));
67238#if defined(DUK_USE_PREFER_SIZE)
67289 for (first = 1;; first = 0) {
67302 goto not_constructable;
67336#if defined(DUK_USE_ES6_PROXY)
67394#if defined(DUK_USE_ASSERTIONS)
67414#if defined(DUK_USE_VERBOSE_ERRORS)
67425 if (tv_wrap != NULL) {
67434#if defined(DUK_USE_VERBOSE_ERRORS)
67435#if defined(DUK_USE_PARANOID_ERRORS)
67447#if defined(DUK_USE_VERBOSE_ERRORS)
67448#if defined(DUK_USE_PARANOID_ERRORS)
67487 "num_stack_rets=%ld, num_actual_rets=%ld, stack_top=%ld, idx_retbase=%ld, idx_rcbase=%ld",
67488 (
long) num_stack_rets,
67489 (
long) num_actual_rets,
67491 (
long) idx_retbase,
67492 (
long) idx_rcbase));
67505 if (idx_rcbase > idx_retbase) {
67509 "(idx_retbase=%ld, idx_rcbase=%ld)",
67510 (
long) idx_retbase,
67511 (
long) idx_rcbase));
67522 "(idx_retbase=%ld, idx_rcbase=%ld)",
67523 (
long) idx_retbase,
67524 (
long) idx_rcbase));
67542#if defined(DUK_USE_TAILCALL)
67557#if defined(DUK_USE_DEBUGGER_SUPPORT)
67577 DUK_DDD(
DUK_DDDPRINT(
"tail call prevented by current activation having DUK_ACT_FLAG_PREVENT_YIELD"));
67597 if (flags1 != flags2) {
67647#if defined(DUK_USE_DEBUGGER_SUPPORT)
67648 if (act == thr->
heap->dbg_pause_act) {
67649 thr->
heap->dbg_pause_flags &= ~DUK_PAUSE_FLAG_LINE_CHANGE;
67652 prev_pause_act = thr->
heap->dbg_pause_act;
67653 thr->
heap->dbg_pause_act = NULL;
67656 duk_debug_set_paused(thr->
heap);
67660#if defined(DUK_USE_DEBUGGER_SUPPORT)
67661 thr->
heap->dbg_pause_act = prev_pause_act;
67679#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
67680 act->prev_caller = NULL;
67684#if defined(DUK_USE_DEBUGGER_SUPPORT)
67685 act->prev_line = 0;
67697#if defined(DUK_USE_ES6_PROXY)
67735 idx_args = idx_func + 2;
67746 *out_vs_min_bytes =
67749#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
67750#if defined(DUK_USE_TAILCALL)
67751#error incorrect options: tail calls enabled with function caller property
67757 duk__update_func_caller_prop(thr, func);
67817#if defined(DUK_USE_ES6_PROXY)
67838 *out_vs_min_bytes =
67839 entry_valstack_bottom_byteoff +
67846 *out_nregs = *out_nargs;
67847 if (*out_nargs >= 0) {
67848 *out_vs_min_bytes =
67849 entry_valstack_bottom_byteoff +
67873 *out_vs_min_bytes = entry_valstack_bottom_byteoff +
67879 *out_vs_min_bytes = valstack_top_byteoff +
67883 *out_nregs = *out_nargs;
67888#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
67889 act->prev_caller = NULL;
67892#if defined(DUK_USE_DEBUGGER_SUPPORT)
67893 act->prev_line = 0;
67911#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
67913 duk__update_func_caller_prop(thr, func);
67991 goto thread_state_error;
67996 goto thread_state_error;
68036#if defined(DUK_USE_ASSERTIONS)
68071#if defined(DUK_USE_ASSERTIONS)
68087 for (tmp_cat = tmp_act->
cat; tmp_cat != NULL; tmp_cat = tmp_cat->
parent) {
68097#if defined(DUK_USE_ASSERTIONS)
68105 entry_thread_state = thr->
state;
68116 "call_flags=0x%08lx (constructor=%ld), "
68117 "valstack_top=%ld, idx_func=%ld, idx_args=%ld, rec_depth=%ld/%ld, "
68118 "entry_valstack_bottom_byteoff=%ld, entry_valstack_end_byteoff=%ld, "
68119 "entry_call_recursion_depth=%ld, "
68120 "entry_curr_thread=%p, entry_thread_state=%ld",
68123 (
unsigned long) call_flags,
68127 (
long) (idx_func + 2),
68130 (
long) entry_valstack_bottom_byteoff,
68131 (
long) entry_valstack_end_byteoff,
68132 (
long) entry_call_recursion_depth,
68133 (
void *) entry_curr_thread,
68134 (
long) entry_thread_state));
68197#if defined(DUK_USE_TAILCALL)
68199 if (use_tailcall) {
68204 entry_valstack_bottom_byteoff,
68205 entry_valstack_end_byteoff,
68216 if (use_tailcall) {
68224 entry_valstack_bottom_byteoff,
68225 entry_valstack_end_byteoff,
68230 idx_args = idx_func + 2;
68270 if (use_tailcall) {
68374 }
else if (rc == 1) {
68376 }
else if (rc < 0) {
68391#if defined(DUK_USE_ES6_PROXY)
68429#if defined(DUK_USE_FASTINT)
68453 thr->
state = (duk_uint8_t) entry_thread_state;
68472#if defined(DUK_USE_DEBUGGER_SUPPORT)
68473 if (duk_debug_is_attached(thr->
heap)) {
68478 thr->
heap->dbg_force_restart = 1;
68482#if defined(DUK_USE_INTERRUPT_COUNTER) && defined(DUK_USE_DEBUG)
68483 duk__interrupt_fixup(thr, entry_curr_thread);
68530#
if defined(DUK_USE_ASSERTIONS)
68560 rc = func(thr, udata);
68572 entry_valstack_bottom_byteoff);
68585 thr->
state = (duk_uint8_t) entry_thread_state;
68590#
if defined(DUK_USE_ASSERTIONS)
68638 thr->
state = (duk_uint8_t) entry_thread_state;
68668#if defined(DUK_USE_ASSERTIONS)
68670 thr->
heap->error_not_allowed = 0;
68685#
if defined(DUK_USE_ASSERTIONS)
68714#if defined(DUK_USE_INTERRUPT_COUNTER) && defined(DUK_USE_DEBUG)
68715 duk__interrupt_fixup(thr, entry_curr_thread);
68726#if defined(DUK_USE_ASSERTIONS)
68754#if defined(DUK_USE_ASSERTIONS)
68761 entry_thread_state = thr->
state;
68770 DUK_DD(
DUK_DDPRINT(
"duk_handle_safe_call: thr=%p, num_stack_args=%ld, num_stack_rets=%ld, "
68771 "valstack_top=%ld, idx_retbase=%ld, rec_depth=%ld/%ld, "
68772 "entry_act=%p, entry_valstack_bottom_byteoff=%ld, entry_call_recursion_depth=%ld, "
68773 "entry_curr_thread=%p, entry_thread_state=%ld",
68775 (
long) num_stack_args,
68776 (
long) num_stack_rets,
68778 (
long) idx_retbase,
68779 (
long) thr->heap->call_recursion_depth,
68780 (
long) thr->heap->call_recursion_limit,
68781 (
void *) entry_act,
68782 (
long) entry_valstack_bottom_byteoff,
68783 (
long) entry_call_recursion_depth,
68784 (
void *) entry_curr_thread,
68785 (
long) entry_thread_state));
68788 old_jmpbuf_ptr = thr->heap->lj.jmpbuf_ptr;
68789 thr->heap->lj.jmpbuf_ptr = &our_jmpbuf;
68795 thr->callstack_preventcount++;
68797#if defined(DUK_USE_CPP_EXCEPTIONS)
68800 DUK_ASSERT(thr->heap->lj.jmpbuf_ptr == &our_jmpbuf);
68809#
if defined(DUK_USE_ASSERTIONS)
68810 entry_valstack_bottom_byteoff,
68811 entry_callstack_top,
68814 entry_thread_state,
68821 thr->heap->lj.jmpbuf_ptr = old_jmpbuf_ptr;
68826 DUK_ASSERT(thr->callstack_curr == entry_act);
68827 DUK_ASSERT((
duk_size_t) ((duk_uint8_t *) thr->valstack_end - (duk_uint8_t *) thr->valstack) >=
68828 entry_valstack_end_byteoff);
68831#if defined(DUK_USE_CPP_EXCEPTIONS)
68832 }
catch (duk_internal_exception &exc) {
68838 DUK_ASSERT((
duk_size_t) ((duk_uint8_t *) thr->valstack_end - (duk_uint8_t *) thr->valstack) >=
68839 entry_valstack_end_byteoff);
68845#
if defined(DUK_USE_ASSERTIONS)
68846 entry_callstack_top,
68849 entry_thread_state,
68852 entry_valstack_bottom_byteoff,
68857#if defined(DUK_USE_CPP_EXCEPTIONS)
68858 catch (duk_fatal_exception &exc) {
68862 }
catch (std::exception &exc) {
68863 const char *what = exc.what();
68864 DUK_ASSERT((
duk_size_t) ((duk_uint8_t *) thr->valstack_end - (duk_uint8_t *) thr->valstack) >=
68865 entry_valstack_end_byteoff);
68870 DUK_D(
DUK_DPRINT(
"unexpected c++ std::exception (perhaps thrown by user code)"));
68874 "caught invalid c++ std::exception '%s' (perhaps thrown by user code)",
68877 }
catch (duk_internal_exception exc) {
68878 DUK_D(
DUK_DPRINT(
"caught api error thrown from unexpected c++ std::exception"));
68882#
if defined(DUK_USE_ASSERTIONS)
68883 entry_callstack_top,
68886 entry_thread_state,
68889 entry_valstack_bottom_byteoff,
68894 DUK_D(
DUK_DPRINT(
"unexpected c++ exception (perhaps thrown by user code)"));
68895 DUK_ASSERT((
duk_size_t) ((duk_uint8_t *) thr->valstack_end - (duk_uint8_t *) thr->valstack) >=
68896 entry_valstack_end_byteoff);
68899 DUK_ERROR_TYPE(thr,
"caught invalid c++ exception (perhaps thrown by user code)");
68901 }
catch (duk_internal_exception exc) {
68902 DUK_D(
DUK_DPRINT(
"caught api error thrown from unexpected c++ exception"));
68906#
if defined(DUK_USE_ASSERTIONS)
68907 entry_callstack_top,
68910 entry_thread_state,
68913 entry_valstack_bottom_byteoff,
68920 DUK_ASSERT(thr->heap->lj.jmpbuf_ptr == old_jmpbuf_ptr);
68924 DUK_ASSERT((
duk_size_t) ((duk_uint8_t *) thr->valstack_end - (duk_uint8_t *) thr->valstack) >= entry_valstack_end_byteoff);
68928#
if defined(DUK_USE_ASSERTIONS)
68929 entry_callstack_top,
68931 entry_call_recursion_depth,
68933 entry_ptr_curr_pc);
68936 thr->callstack_preventcount--;
68937 DUK_ASSERT(thr->callstack_preventcount == entry_callstack_preventcount);
68940 DUK_ASSERT(thr->callstack_curr == entry_act);
68941 DUK_ASSERT((
duk_size_t) ((duk_uint8_t *) thr->valstack_bottom - (duk_uint8_t *) thr->valstack) ==
68942 entry_valstack_bottom_byteoff);
68943 DUK_ASSERT((
duk_size_t) ((duk_uint8_t *) thr->valstack_end - (duk_uint8_t *) thr->valstack) >= entry_valstack_end_byteoff);
68944 DUK_ASSERT(thr->callstack_top == entry_callstack_top);
68945 DUK_ASSERT(thr->heap->call_recursion_depth == entry_call_recursion_depth);
68946 DUK_ASSERT(thr->heap->curr_thread == entry_curr_thread);
68947 DUK_ASSERT(thr->state == entry_thread_state);
68948 DUK_ASSERT(thr->ptr_curr_pc == entry_ptr_curr_pc);
68965#if defined(DUK_USE_VERBOSE_ERRORS)
68967 const char *str_targ, *str_key, *str_base;
68997#if defined(DUK_USE_PARANOID_ERRORS)
68998 str_targ = duk_get_type_name(thr, -4);
68999 str_key = duk_get_type_name(thr, -2);
69000 str_base = duk_get_type_name(thr, -3);
69003 "%s not callable (property %s of %s)",
69016 "%s not callable (property %s of %s)",
69036#undef DUK__AUGMENT_CALL_RELAX_COUNT
69037#undef DUK__CALL_HANDLING_REQUIRE_STACK
69074#define DUK__CONST_MARKER DUK_REGCONST_CONST_MARKER
69075#define DUK__REMOVECONST(x) ((x) & ~DUK__CONST_MARKER)
69076#define DUK__ISREG(x) ((x) >= 0)
69077#define DUK__ISCONST(x) ((x) < 0)
69078#define DUK__ISREG_TEMP(comp_ctx, x) \
69079 ((duk_int32_t) (x) >= \
69080 (duk_int32_t) ((comp_ctx)->curr_func.temp_first))
69081#define DUK__ISREG_NOTTEMP(comp_ctx, x) \
69082 ((duk_uint32_t) (x) < \
69083 (duk_uint32_t) ((comp_ctx)->curr_func.temp_first))
69084#define DUK__GETTEMP(comp_ctx) ((comp_ctx)->curr_func.temp_next)
69085#define DUK__SETTEMP(comp_ctx, x) ((comp_ctx)->curr_func.temp_next = (x))
69086#define DUK__SETTEMP_CHECKMAX(comp_ctx, x) duk__settemp_checkmax((comp_ctx), (x))
69087#define DUK__ALLOCTEMP(comp_ctx) duk__alloctemp((comp_ctx))
69088#define DUK__ALLOCTEMPS(comp_ctx, count) duk__alloctemps((comp_ctx), (count))
69091#define DUK__MAX_ARRAY_INIT_VALUES 20
69092#define DUK__MAX_OBJECT_INIT_PAIRS 10
69095#define DUK__GETCONST_MAX_CONSTS_CHECK 256
69100#define DUK__MAX_CONSTS DUK_BC_BC_MAX
69101#define DUK__MAX_FUNCS DUK_BC_BC_MAX
69102#define DUK__MAX_TEMPS 0xffffL
69105#if defined(DUK_USE_PREFER_SIZE)
69106#define DUK__BC_INITIAL_INSTS 16
69108#define DUK__BC_INITIAL_INSTS 256
69111#define DUK__RECURSION_INCREASE(comp_ctx, thr) \
69113 DUK_DDD(DUK_DDDPRINT("RECURSION INCREASE: %s:%ld", (const char *) DUK_FILE_MACRO, (long) DUK_LINE_MACRO)); \
69114 duk__comp_recursion_increase((comp_ctx)); \
69117#define DUK__RECURSION_DECREASE(comp_ctx, thr) \
69119 DUK_DDD(DUK_DDDPRINT("RECURSION DECREASE: %s:%ld", (const char *) DUK_FILE_MACRO, (long) DUK_LINE_MACRO)); \
69120 duk__comp_recursion_decrease((comp_ctx)); \
69126#define DUK__COMPILE_ENTRY_SLOTS 8
69127#define DUK__FUNCTION_INIT_REQUIRE_SLOTS 16
69128#define DUK__FUNCTION_BODY_REQUIRE_SLOTS 16
69129#define DUK__PARSE_STATEMENTS_SLOTS 16
69130#define DUK__PARSE_EXPR_SLOTS 16
69320#define DUK__FUNC_FLAG_DECL (1 << 0)
69321#define DUK__FUNC_FLAG_GETSET (1 << 1)
69322#define DUK__FUNC_FLAG_METDEF (1 << 2)
69323#define DUK__FUNC_FLAG_PUSHNAME_PASS1 (1 << 3)
69324#define DUK__FUNC_FLAG_USE_PREVTOKEN (1 << 4)
69341#define DUK__BP_INVALID 0
69342#define DUK__BP_EOF 2
69343#define DUK__BP_CLOSING 4
69344#define DUK__BP_FOR_EXPR DUK__BP_CLOSING
69345#define DUK__BP_COMMA 6
69346#define DUK__BP_ASSIGNMENT 8
69347#define DUK__BP_CONDITIONAL 10
69348#define DUK__BP_LOR 12
69349#define DUK__BP_LAND 14
69350#define DUK__BP_BOR 16
69351#define DUK__BP_BXOR 18
69352#define DUK__BP_BAND 20
69353#define DUK__BP_EQUALITY 22
69354#define DUK__BP_RELATIONAL 24
69355#define DUK__BP_SHIFT 26
69356#define DUK__BP_ADDITIVE 28
69357#define DUK__BP_MULTIPLICATIVE 30
69358#define DUK__BP_EXPONENTIATION 32
69359#define DUK__BP_POSTFIX 34
69360#define DUK__BP_CALL 36
69361#define DUK__BP_MEMBER 38
69363#define DUK__TOKEN_LBP_BP_MASK 0x1f
69364#define DUK__TOKEN_LBP_FLAG_NO_REGEXP (1 << 5)
69365#define DUK__TOKEN_LBP_FLAG_TERMINATES (1 << 6)
69366#define DUK__TOKEN_LBP_FLAG_UNUSED (1 << 7)
69368#define DUK__TOKEN_LBP_GET_BP(x) ((duk_small_uint_t) (((x) &DUK__TOKEN_LBP_BP_MASK) * 2))
69370#define DUK__MK_LBP(bp) ((bp) >> 1)
69371#define DUK__MK_LBP_FLAGS(bp, flags) (((bp) >> 1) | (flags))
69561 "prev: tok=%ld/%ld,%ld,term=%ld,%!T,%!T",
69599#if defined(DUK_USE_EXPLICIT_NULL_INIT)
69686 duk_uint32_t i, e_next;
69696 for (i = 0; i < e_next; i++) {
69749#if !defined(DUK_USE_DEBUGGER_SUPPORT)
69778 "indirectly -> set CREATEARGS"));
69793#if defined(DUK_USE_FUNC_NAME_PROPERTY)
69833 data_size = consts_count *
sizeof(
duk_tval) + funcs_count *
sizeof(
duk_hobject *) + code_size;
69836 "data_size=%ld*%ld + %ld*%ld + %ld = %ld",
69837 (
long) consts_count,
69838 (
long) funcs_count,
69840 (
long) consts_count,
69842 (
long) funcs_count,
69845 (
long) data_size));
69854 for (i = 0; i < consts_count; i++) {
69867 for (i = 0; i < funcs_count; i++) {
69887 for (i = 0; i < code_count; i++) {
69888 p_instr[i] = q_instr[i].
ins;
69910#if defined(DUK_USE_DEBUGGER_SUPPORT)
69911 h_res->start_line = (duk_uint32_t) func->min_line;
69912 h_res->end_line = (duk_uint32_t) func->max_line;
69933#if defined(DUK_USE_DEBUGGER_SUPPORT)
69942 DUK_DD(
DUK_DDPRINT(
"keeping _Varmap because of direct eval, slow path access that may match local variables, or "
69943 "presence of inner functions"));
69957 if (num_used > 0) {
69973#if defined(DUK_USE_DEBUGGER_SUPPORT)
69989 "keeping _Formals because of direct eval or explicit access to 'arguments', and _Formals.length != 0"));
69992 DUK_DD(
DUK_DDPRINT(
"omitting _Formals, nargs matches _Formals.length, so no properties added"));
69997 if (keep_formals) {
70003#if defined(DUK_USE_FUNC_NAME_PROPERTY)
70012#if defined(DUK_USE_NONSTD_FUNC_SOURCE_PROPERTY)
70060#if defined(DUK_USE_PC2LINE)
70077#if defined(DUK_USE_FUNC_FILENAME_PROPERTY)
70100#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
70110 while (p < p_end) {
70112 (
long) (p - p_start),
70114 (
unsigned long) (*p),
70160#define DUK__EMIT_FLAG_NO_SHUFFLE_A (1 << 8)
70161#define DUK__EMIT_FLAG_NO_SHUFFLE_B (1 << 9)
70162#define DUK__EMIT_FLAG_NO_SHUFFLE_C (1 << 10)
70163#define DUK__EMIT_FLAG_A_IS_SOURCE (1 << 11)
70164#define DUK__EMIT_FLAG_B_IS_TARGET (1 << 12)
70165#define DUK__EMIT_FLAG_C_IS_TARGET (1 << 13)
70166#define DUK__EMIT_FLAG_BC_REGCONST (1 << 14)
70167#define DUK__EMIT_FLAG_RESERVE_JUMPSLOT (1 << 15)
70187#if defined(DUK_USE_PC2LINE)
70192 DUK_DDD(
DUK_DDDPRINT(
"duk__emit: 0x%08lx curr_token.start_line=%ld prev_token.start_line=%ld pc=%ld --> %!I",
70193 (
unsigned long) ins,
70204#if defined(DUK_USE_PC2LINE)
70221#if defined(DUK_USE_PC2LINE)
70222 instr->
line = (duk_uint32_t)
line;
70224#if defined(DUK_USE_DEBUGGER_SUPPORT)
70225 if (line < comp_ctx->curr_func.min_line) {
70235 goto fail_bc_limit;
70237#if defined(DUK_USE_PC2LINE) && defined(DUK_USE_ESBC_LIMITS)
70238#if defined(DUK_USE_BUFLEN16)
70241 goto fail_bc_limit;
70245 goto fail_bc_limit;
70263#if defined(DUK_USE_DEBUGGER_SUPPORT)
70270 if (line < comp_ctx->curr_func.min_line) {
70298 DUK_DDD(
DUK_DDDPRINT(
"emit: op_flags=%04lx, a=%ld, b=%ld, c=%ld", (
unsigned long) op_flags, (
long) a, (
long) b, (
long) c));
70321#if defined(DUK_USE_SHUFFLE_TORTURE)
70328 DUK_D(
DUK_DPRINT(
"out of regs: 'a' (reg) needs shuffling but shuffle prohibited, a: %ld", (
long) a));
70329 goto error_outofregs;
70349 goto error_outofregs;
70355 DUK_D(
DUK_DPRINT(
"out of regs: 'a' (reg) needs shuffling but does not fit into BC, a: %ld", (
long) a));
70356 goto error_outofregs;
70364 b = b & ~DUK__CONST_MARKER;
70365#if defined(DUK_USE_SHUFFLE_TORTURE)
70375 DUK_D(
DUK_DPRINT(
"B is const, opcode is not B/C reg/const: %x", op_flags));
70383 DUK_D(
DUK_DPRINT(
"out of regs: 'b' (const) needs shuffling but does not fit into BC, b: %ld", (
long) b));
70384 goto error_outofregs;
70387#if defined(DUK_USE_SHUFFLE_TORTURE)
70397 DUK_DPRINT(
"out of regs: 'b' (reg) needs shuffling but shuffle prohibited, b: %ld", (
long) b));
70398 goto error_outofregs;
70425 DUK_D(
DUK_DPRINT(
"out of regs: 'b' (reg) needs shuffling but does not fit into BC, b: %ld", (
long) b));
70426 goto error_outofregs;
70435 c = c & ~DUK__CONST_MARKER;
70436#if defined(DUK_USE_SHUFFLE_TORTURE)
70446 DUK_D(
DUK_DPRINT(
"C is const, opcode is not B/C reg/const: %x", op_flags));
70454 DUK_D(
DUK_DPRINT(
"out of regs: 'c' (const) needs shuffling but does not fit into BC, c: %ld", (
long) c));
70455 goto error_outofregs;
70458#if defined(DUK_USE_SHUFFLE_TORTURE)
70468 DUK_DPRINT(
"out of regs: 'c' (reg) needs shuffling but shuffle prohibited, c: %ld", (
long) c));
70469 goto error_outofregs;
70482 DUK_D(
DUK_DPRINT(
"out of regs: 'c' (reg) needs shuffling but does not fit into BC, c: %ld", (
long) c));
70483 goto error_outofregs;
70530 }
else if (b_out >= 0) {
70534 }
else if (c_out >= 0) {
70557#if defined(DUK_USE_SHUFFLE_TORTURE)
70564#if defined(DUK_USE_SHUFFLE_TORTURE)
70572#if defined(DUK_USE_SHUFFLE_TORTURE)
70581#if defined(DUK_USE_SHUFFLE_TORTURE)
70594 bc = bc & (~DUK__CONST_MARKER);
70606 goto error_outofregs;
70609#if defined(DUK_USE_SHUFFLE_TORTURE)
70617 goto error_outofregs;
70637 goto error_outofregs;
70647#if defined(DUK_USE_SHUFFLE_TORTURE)
70666 goto error_outofregs;
70669 DUK_DDD(
DUK_DDDPRINT(
"duk__emit_abc: 0x%08lx line=%ld pc=%ld op=%ld (%!X) abc=%ld (%!I)",
70670 (
unsigned long) ins,
70716#if defined(DUK_USE_SHUFFLE_TORTURE)
70756#if defined(DUK_USE_PC2LINE)
70767#if defined(DUK_USE_PC2LINE)
70771#if defined(DUK_USE_PC2LINE)
70772 instr->
line = (duk_uint32_t)
line;
70777 goto fail_bc_limit;
70796 DUK_DDDPRINT(
"duk__patch_jump(): nop call, jump_pc=%ld (<0), target_pc=%ld", (
long) jump_pc, (
long) target_pc));
70806 offset = target_pc - jump_pc - 1;
70834 const_varname = const_varname & (~DUK__CONST_MARKER);
70843 DUK_D(
DUK_DPRINT(
"failed to patch trycatch: flags=%ld, reg_catch=%ld, const_varname=%ld (0x%08lx)",
70846 (
long) const_varname,
70847 (
long) const_varname));
70898#if defined(DUK_USE_BUFLEN16)
70909 for (i = 0; i < n; i++) {
70920 DUK_DDD(
DUK_DDDPRINT(
"consider jump at pc %ld; target_pc=%ld", (
long) i, (
long) target_pc1));
70929 ins = bc[target_pc1].
ins;
70936 DUK_DDD(
DUK_DDDPRINT(
"optimizing jump at pc %ld; old target is %ld -> new target is %ld",
70939 (
long) target_pc2));
70948 if (count_opt == 0) {
70965#define DUK__IVAL_FLAG_ALLOW_CONST (1 << 0)
70966#define DUK__IVAL_FLAG_REQUIRE_TEMP (1 << 1)
70967#define DUK__IVAL_FLAG_REQUIRE_SHORT (1 << 2)
70972#define DUK__DUMP_ISPEC(compctx, ispec) \
70974 duk__dump_ispec((compctx), (ispec)); \
70976#define DUK__DUMP_IVALUE(compctx, ivalue) \
70978 duk__dump_ivalue((compctx), (ivalue)); \
70982 DUK_D(
DUK_DPRINT(
"ispec dump: t=%ld regconst=0x%08lx, valstack_idx=%ld, value=%!T",
70988 "x1={t=%ld regconst=0x%08lx valstack_idx=%ld value=%!T} "
70989 "x2={t=%ld regconst=0x%08lx valstack_idx=%ld value=%!T}",
70997#define DUK__DUMP_ISPEC(comp_ctx, x) \
71000#define DUK__DUMP_IVALUE(comp_ctx, x) \
71088#if defined(DUK_USE_FASTINT)
71098 for (i = 0; i < n_check; i++) {
71122#if defined(DUK_USE_REFERENCE_COUNTING)
71163 "forced_reg=%ld, flags 0x%08lx: allow_const=%ld require_temp=%ld require_short=%ld",
71168 (
unsigned long) flags,
71228 dest = (forced_reg >= 0 ? forced_reg :
DUK__ALLOCTEMP(comp_ctx));
71244#if defined(DUK_USE_FASTINT)
71266 dest = (forced_reg >= 0 ? forced_reg :
DUK__ALLOCTEMP(comp_ctx));
71278 dest = (forced_reg >= 0 ? forced_reg :
DUK__ALLOCTEMP(comp_ctx));
71284 goto fail_internal;
71287 if (forced_reg >= 0) {
71290 }
else if (x->
regconst != forced_reg) {
71339 DUK_DDD(
DUK_DDDPRINT(
"duk__ivalue_toplain_raw(): x={t=%ld,op=%ld,x1={%ld:%ld:%!T},x2={%ld:%ld:%!T}}, "
71349 (
long) forced_reg));
71453 if (forced_reg >= 0) {
71494 if (forced_reg >= 0) {
71521 dest = (forced_reg >= 0 ? forced_reg :
DUK__ALLOCTEMP(comp_ctx));
71570 DUK_DDD(
DUK_DDDPRINT(
"duk__ivalue_toregconst_raw(): x={t=%ld,op=%ld,x1={%ld:%ld:%!T},x2={%ld:%ld:%!T}}, "
71571 "forced_reg=%ld, flags 0x%08lx: allow_const=%ld require_temp=%ld require_short=%ld",
71581 (
unsigned long) flags,
71657 goto slow_path_own;
71676 goto slow_path_own;
71682 DUK_DDD(
DUK_DDDPRINT(
"slow path access outside of try-catch and with, no need for _Varmap"));
71683 goto slow_path_notown;
71722 if (reg_varbind >= 0) {
71723 *out_reg_varbind = reg_varbind;
71724 *out_rc_varname = 0;
71729 *out_reg_varbind = -1;
71730 *out_rc_varname = rc_varname;
71764 while (li > li_start) {
71801 DUK_DDD(
DUK_DDDPRINT(
"registered label: flags=0x%08lx, id=%ld, name=%!O, catch_depth=%ld, pc_label=%ld",
71802 (
unsigned long) li->
flags,
71822 while (li > li_start) {
71829 DUK_DDD(
DUK_DDDPRINT(
"updating (overwriting) label flags for li=%p, label_id=%ld, flags=%ld",
71877 while (li > li_start) {
71880 if (li->
h_label != h_label) {
71882 (
long) (li - li_start),
71888 DUK_DDD(
DUK_DDDPRINT(
"labelinfo[%ld] -> '%!O' label name matches (still need to check type)",
71889 (
long) (li - li_start),
71913 "allow a continue -> continue lookup deeper in label stack"));
71932 *out_is_closest = (li == li_end - 1);
71951#define DUK__OBJ_LIT_KEY_PLAIN (1 << 0)
71952#define DUK__OBJ_LIT_KEY_GET (1 << 1)
71953#define DUK__OBJ_LIT_KEY_SET (1 << 2)
71966#if !defined(DUK_USE_PREFER_SIZE)
71977#if !defined(DUK_USE_PREFER_SIZE)
72015 if (require_comma) {
72036 if (num_values == 0) {
72037 start_idx = curr_idx;
72051 if (num_values >= max_init_values) {
72057 if (num_values > 0) {
72071 init_idx = start_idx + num_values;
72080#if !defined(DUK_USE_PREFER_SIZE)
72091 if (curr_idx > init_idx) {
72164#if !defined(DUK_USE_PREFER_SIZE)
72178#if !defined(DUK_USE_PREFER_SIZE)
72285#if defined(DUK_USE_ES6)
72322#if defined(DUK_USE_ES6)
72365#if !defined(DUK_USE_PREFER_SIZE)
72422 DUK_DDD(
DUK_DDDPRINT(
"argument #%ld written into reg %ld", (
long) nargs, (
long) reg_temp));
72501#if defined(DUK_USE_REGEXP_SUPPORT)
72585#if defined(DUK_USE_ES6)
72592 goto syntax_error_newtarget;
72595 goto syntax_error_newtarget;
72740 "at compile time, need to use special run-time handling"));
72895 (
long) reg_varbind,
72896 (
long) rc_varname));
72929#if defined(DUK_USE_ES6)
72930syntax_error_newtarget:
73073 "-> using EVALCALL, marking function "
73074 "as may_direct_eval"));
73095#if defined(DUK_USE_VERBOSE_ERRORS)
73110#if defined(DUK_USE_VERBOSE_ERRORS)
73159#if defined(DUK_USE_ES7_EXP_OPERATOR)
73277 goto binary_logical;
73282 goto binary_logical;
73359#if defined(DUK_USE_ES7_EXP_OPERATOR)
73440 res->
op = (args >> 8) & 0xff;
73450 DUK_DDD(
DUK_DDDPRINT(
"binary op, res: t=%ld, x1.t=%ld, x1.regconst=0x%08lx, x2.t=%ld, x2.regconst=0x%08lx",
73559 (
long) toplevel_assign));
73571 goto syntax_error_lvalue;
73578 if (toplevel_assign) {
73584 "plain assignment, not toplevel assign, ensure not a reg-bound identifier"));
73600 if (reg_varbind >= 0) {
73607 if (toplevel_assign) {
73612 DUK_DD(
DUK_DDPRINT(
"<op>= expression is top level, write directly to reg_varbind"));
73613 reg_res = reg_varbind;
73619 reg_res = reg_temp;
73639 (
long) pc_temp_load,
73640 (
long) pc_before_rhs,
73641 (
long) pc_after_rhs));
73643 if (pc_after_rhs == pc_before_rhs) {
73648 DUK_DD(
DUK_DDPRINT(
"rhs is side effect free, rewind and avoid unnecessary temp for "
73649 "reg-based <op>="));
73652 (pc_temp_load - pc_before_rhs) *
73654 reg_src = reg_varbind;
73656 DUK_DD(
DUK_DDPRINT(
"rhs evaluation emitted code, not sure if rhs is side effect "
73657 "free; use temp reg for LHS"));
73658 reg_src = reg_temp;
73701 if (reg_varbind >= 0) {
73707 if (toplevel_assign) {
73871 (
long) reg_varbind,
73872 (
long) rc_varname));
73904syntax_error_lvalue:
73947#define DUK__EXPR_RBP_MASK 0xff
73948#define DUK__EXPR_FLAG_REJECT_IN (1 << 8)
73949#define DUK__EXPR_FLAG_ALLOW_EMPTY (1 << 9)
73950#define DUK__EXPR_FLAG_REQUIRE_INIT (1 << 10)
73966 DUK_DDD(
DUK_DDDPRINT(
"duk__expr(), rbp_flags=%ld, rbp=%ld, allow_in=%ld, paren_level=%ld",
74051 return duk__ivalue_totemp(comp_ctx, res);
74094 return duk__ivalue_totemp(comp_ctx, res);
74131#define DUK__HAS_VAL (1 << 0)
74132#define DUK__HAS_TERM (1 << 1)
74133#define DUK__ALLOW_AUTO_SEMI_ALWAYS (1 << 2)
74134#define DUK__STILL_PROLOGUE (1 << 3)
74135#define DUK__IS_TERMINAL (1 << 4)
74204 (
long) reg_varbind,
74205 (
long) rc_varname));
74209 if (reg_varbind >= 0) {
74225 *out_rc_varname = rc_varname;
74226 *out_reg_varbind = reg_varbind;
74311 DUK_DDD(
DUK_DDDPRINT(
"detected for variant 4: for (var VariableDeclarationNoIn in Expression) Statement"));
74313 if (reg_varbind >= 0) {
74325 "detected for variant 2: for (var VariableDeclarationNoIn; Expression_opt; Expression_opt) Statement"));
74360 DUK_DDD(
DUK_DDDPRINT(
"detected for variant 3: for (LeftHandSideExpression in Expression) Statement"));
74408 "detected for variant 1: for (ExpressionNoIn_opt; Expression_opt; Expression_opt) Statement"));
74431 temp_reset = reg_temps + 0;
74470 if (expr_c_empty) {
74480 "break: %ld->%ld, continue: %ld->%ld",
74481 (
long) pc_jumpto_l3,
74483 (
long) pc_jumpto_l4,
74485 (
long) (pc_label_site + 1),
74487 (
long) (pc_label_site + 2),
74493 duk__patch_jump(comp_ctx, pc_label_site + 2, expr_c_empty ? pc_l1 : pc_l2);
74517 duk_int_t pc_l1, pc_l2, pc_l3, pc_l4, pc_l5;
74518 duk_int_t pc_jumpto_l2, pc_jumpto_l3, pc_jumpto_l4, pc_jumpto_l5;
74521 DUK_DDD(
DUK_DDDPRINT(
"shared code for parsing variants 3 and 4, pc_v34_lhs=%ld", (
long) pc_v34_lhs));
74533 pc_jumpto_l2 = pc_v34_lhs;
74534 pc_l1 = pc_v34_lhs + 1;
74585 "jumpto_l4: %ld->%ld, jumpto_l5: %ld->%ld, "
74586 "break: %ld->%ld, continue: %ld->%ld",
74587 (
long) pc_jumpto_l2,
74589 (
long) pc_jumpto_l3,
74591 (
long) pc_jumpto_l4,
74593 (
long) pc_jumpto_l5,
74595 (
long) (pc_label_site + 1),
74597 (
long) (pc_label_site + 2),
74708 if (pc_default >= 0) {
74718 if (pc_prevcase < 0) {
74741 if (pc_default == -2) {
74783 if (pc_default >= 0) {
74945 &label_catch_depth,
74947 &label_is_closest);
74955 &label_catch_depth,
74957 &label_is_closest);
74971 DUK_DDD(
DUK_DDDPRINT(
"break/continue: is_break=%ld, label_id=%ld, label_is_closest=%ld, "
74972 "label_catch_depth=%ld, catch_depth=%ld "
74973 "-> use fast variant (direct jump)",
74976 (
long) label_is_closest,
74977 (
long) label_catch_depth,
74982 DUK_DDD(
DUK_DDDPRINT(
"break/continue: is_break=%ld, label_id=%ld, label_is_closest=%ld, "
74983 "label_catch_depth=%ld, catch_depth=%ld "
74984 "-> use slow variant (longjmp)",
74987 (
long) label_is_closest,
74988 (
long) label_catch_depth,
75062#if defined(DUK_USE_TAILCALL)
75064 pc_after_expr > pc_before_expr) {
75076 "catch depth is 0, duk__exprtop() emitted >= 1 instructions, "
75077 "and last instruction is a CALL "
75078 "-> change to TAILCALL"));
75209 DUK_DDD(
DUK_DDDPRINT(
"catch identifier 'eval' or 'arguments' in strict mode -> SyntaxError"));
75215 DUK_DDD(
DUK_DDDPRINT(
"catch clause, rc_varname=0x%08lx (%ld)", (
unsigned long) rc_varname, (
long) rc_varname));
75261 if (varmap_value == -2) {
75265 if (varmap_value == -1) {
75314 duk__patch_trycatch(comp_ctx, pc_ldconst, pc_trycatch, reg_catch, rc_varname, trycatch_flags);
75380 if (label_id >= 0) {
75421 DUK_DDD(
DUK_DDDPRINT(
"parsing a statement, stmt_id=%ld, temp_at_entry=%ld, labels_len_at_entry=%ld, "
75422 "is_strict=%ld, in_directive_prologue=%ld, catch_depth=%ld",
75424 (
long) temp_at_entry,
75425 (
long) labels_len_at_entry,
75439 DUK_DDD(
DUK_DDDPRINT(
"try stmt parse, stmt_id=%ld, label_id=%ld, allow_source_elem=%ld, catch_depth=%ld",
75442 (
long) allow_source_elem,
75476 test_func_decl = allow_source_elem;
75477#if defined(DUK_USE_NONSTD_FUNC_STMT)
75485 if (test_func_decl) {
75495#if defined(DUK_USE_ASSERTIONS)
75501#if defined(DUK_USE_ASSERTIONS)
75515#if defined(DUK_USE_ASSERTIONS)
75527#if defined(DUK_USE_ASSERTIONS)
75546 if (label_id >= 0) {
75573 if (label_id >= 0) {
75636 if (label_id >= 0) {
75669#if defined(DUK_USE_DEBUGGER_SUPPORT)
75745 allow_source_elem = 0;
75753 if (dir_prol_at_entry &&
75776 "but we ignore such directives"));
75785#if defined(DUK_USE_STRICT_DECL)
75801 "directive prologue",
75807 "prologue terminated if still active"));
75836 if (reg_stmt_value >= 0) {
75860 DUK_DDD(
DUK_DDDPRINT(
"automatic semicolon terminates statement (allowed for compatibility "
75861 "even though no lineterm present before next token)"));
75887 if (label_id >= 0) {
75968 if (regexp_after) {
76019#if defined(DUK_USE_ASSERTIONS)
76023#if defined(DUK_USE_ASSERTIONS)
76045 for (i = 0; i < num_args; i++) {
76052 goto error_argname;
76057 goto error_argname;
76070 goto error_argname;
76093 if (out_stmt_value_reg) {
76101 DUK_D(
DUK_DPRINT(
"shuffle registers needed by function, allocated: %ld %ld %ld",
76108 goto error_outofregs;
76118 for (i = 0; i < num_decls; i += 2) {
76124 fnum = decl_type >> 8;
76125 decl_type = decl_type & 0xff;
76168 if (configurable_bindings) {
76185#if defined(DUK_USE_FASTINT)
76200 "-> arguments object creation can be skipped"));
76212 for (i = 0; i < num_decls; i += 2) {
76217 decl_type = decl_type & 0xff;
76235 "but appears as a variable declaration -> treat as "
76236 "a no-op for variable declaration purposes"));
76252 if (configurable_bindings) {
76335 thr = comp_ctx->
thr;
76360 if (implicit_return_value) {
76392#if defined(DUK_USE_DEBUGGER_SUPPORT)
76394 func->max_line = 0;
76400 if (expect_token >= 0) {
76496 goto error_funcname;
76500 goto error_funcname;
76506 goto error_funcname;
76515 if (implicit_return_value) {
76533 if (compile_round >= 3) {
76535 DUK_D(
DUK_DPRINT(
"more than 3 compile passes needed, should never happen"));
76539 DUK_D(
DUK_DPRINT(
"need additional round to compile function, round now %d", (
int) compile_round));
76558 if (reg_stmt_value >= 0) {
76793 DUK_DDDPRINT(
"second pass of an inner func, skip the function, reparse closing brace; lex offset=%ld, line=%ld",
76795 (
long) lex_pt.
line));
76941 flags = comp_stk->
flags;
76953#if defined(DUK_USE_EXPLICIT_NULL_INIT)
76954 comp_ctx->
thr = NULL;
76970 comp_ctx->
thr = thr;
76981 comp_ctx->
lex.
thr = thr;
77019 func->
is_strict = (duk_uint8_t) is_strict;
77035 func->
is_eval = (duk_uint8_t) is_eval;
77036 func->
is_global = (duk_uint8_t) !is_eval;
77072 comp_stk.
flags = flags;
77095#undef DUK__ALLOCTEMP
77096#undef DUK__ALLOCTEMPS
77097#undef DUK__ALLOW_AUTO_SEMI_ALWAYS
77098#undef DUK__BC_INITIAL_INSTS
77099#undef DUK__BP_ADDITIVE
77100#undef DUK__BP_ASSIGNMENT
77105#undef DUK__BP_CLOSING
77106#undef DUK__BP_COMMA
77107#undef DUK__BP_CONDITIONAL
77109#undef DUK__BP_EQUALITY
77110#undef DUK__BP_EXPONENTIATION
77111#undef DUK__BP_FOR_EXPR
77112#undef DUK__BP_INVALID
77115#undef DUK__BP_MEMBER
77116#undef DUK__BP_MULTIPLICATIVE
77117#undef DUK__BP_POSTFIX
77118#undef DUK__BP_RELATIONAL
77119#undef DUK__BP_SHIFT
77120#undef DUK__COMPILE_ENTRY_SLOTS
77121#undef DUK__CONST_MARKER
77122#undef DUK__DUMP_ISPEC
77123#undef DUK__DUMP_IVALUE
77124#undef DUK__EMIT_FLAG_A_IS_SOURCE
77125#undef DUK__EMIT_FLAG_BC_REGCONST
77126#undef DUK__EMIT_FLAG_B_IS_TARGET
77127#undef DUK__EMIT_FLAG_C_IS_TARGET
77128#undef DUK__EMIT_FLAG_NO_SHUFFLE_A
77129#undef DUK__EMIT_FLAG_NO_SHUFFLE_B
77130#undef DUK__EMIT_FLAG_NO_SHUFFLE_C
77131#undef DUK__EMIT_FLAG_RESERVE_JUMPSLOT
77132#undef DUK__EXPR_FLAG_ALLOW_EMPTY
77133#undef DUK__EXPR_FLAG_REJECT_IN
77134#undef DUK__EXPR_FLAG_REQUIRE_INIT
77135#undef DUK__EXPR_RBP_MASK
77136#undef DUK__FUNCTION_BODY_REQUIRE_SLOTS
77137#undef DUK__FUNCTION_INIT_REQUIRE_SLOTS
77138#undef DUK__FUNC_FLAG_DECL
77139#undef DUK__FUNC_FLAG_GETSET
77140#undef DUK__FUNC_FLAG_METDEF
77141#undef DUK__FUNC_FLAG_PUSHNAME_PASS1
77142#undef DUK__FUNC_FLAG_USE_PREVTOKEN
77143#undef DUK__GETCONST_MAX_CONSTS_CHECK
77145#undef DUK__HAS_TERM
77149#undef DUK__ISREG_NOTTEMP
77150#undef DUK__ISREG_TEMP
77151#undef DUK__IS_TERMINAL
77152#undef DUK__IVAL_FLAG_ALLOW_CONST
77153#undef DUK__IVAL_FLAG_REQUIRE_SHORT
77154#undef DUK__IVAL_FLAG_REQUIRE_TEMP
77155#undef DUK__MAX_ARRAY_INIT_VALUES
77156#undef DUK__MAX_CONSTS
77157#undef DUK__MAX_FUNCS
77158#undef DUK__MAX_OBJECT_INIT_PAIRS
77159#undef DUK__MAX_TEMPS
77161#undef DUK__MK_LBP_FLAGS
77162#undef DUK__OBJ_LIT_KEY_GET
77163#undef DUK__OBJ_LIT_KEY_PLAIN
77164#undef DUK__OBJ_LIT_KEY_SET
77165#undef DUK__PARSE_EXPR_SLOTS
77166#undef DUK__PARSE_STATEMENTS_SLOTS
77167#undef DUK__RECURSION_DECREASE
77168#undef DUK__RECURSION_INCREASE
77169#undef DUK__REMOVECONST
77171#undef DUK__SETTEMP_CHECKMAX
77172#undef DUK__STILL_PROLOGUE
77173#undef DUK__TOKEN_LBP_BP_MASK
77174#undef DUK__TOKEN_LBP_FLAG_NO_REGEXP
77175#undef DUK__TOKEN_LBP_FLAG_TERMINATES
77176#undef DUK__TOKEN_LBP_FLAG_UNUSED
77177#undef DUK__TOKEN_LBP_GET_BP
77197#define DUK__REPLACE_TO_TVPTR(thr, tv_ptr) \
77199 duk_hthread *duk__thr; \
77200 duk_tval *duk__tvsrc; \
77201 duk_tval *duk__tvdst; \
77202 duk_tval duk__tvtmp; \
77203 duk__thr = (thr); \
77204 duk__tvsrc = DUK_GET_TVAL_NEGIDX(duk__thr, -1); \
77205 duk__tvdst = (tv_ptr); \
77206 DUK_TVAL_SET_TVAL(&duk__tvtmp, duk__tvdst); \
77207 DUK_TVAL_SET_TVAL(duk__tvdst, duk__tvsrc); \
77208 DUK_TVAL_SET_UNDEFINED(duk__tvsrc); \
77209 duk__thr->valstack_top = duk__tvsrc; \
77210 DUK_TVAL_DECREF(duk__thr, &duk__tvtmp); \
77222 duk_memcpy((
void *) tv_dst, (
const void *) tv_src, copy_size);
77223 for (i = 0; i <
count; i++) {
77250#if defined(DUK_USE_ES7_EXP_OPERATOR)
77288#if defined(DUK_USE_FASTINT)
77290 duk_int64_t v1, v2, v3;
77301 v3_hi = (duk_int32_t) (v3 >> 32);
77314#if !defined(DUK_USE_EXEC_PREFER_SIZE)
77319#if defined(DUK_USE_EXEC_PREFER_SIZE)
77382#if defined(DUK_USE_FASTINT) || !defined(DUK_USE_EXEC_PREFER_SIZE)
77392 opcode_shifted = opcode >> 2;
77394#if defined(DUK_USE_FASTINT)
77396 duk_int64_t v1, v2, v3;
77402 switch (opcode_shifted) {
77427 if (v1 == 0 || v2 == 0) {
77431 if (v3 * v2 != v1) {
77441 if (v1 < 1 || v2 < 1) {
77456 v3_hi = (duk_int32_t) (v3 >> 32);
77483 switch (opcode_shifted) {
77503#if defined(DUK_USE_ES7_EXP_OPERATOR)
77516#if defined(DUK_USE_EXEC_PREFER_SIZE)
77543 duk_int32_t i1, i2, i3;
77544 duk_uint32_t u1, u2, u3;
77545#if defined(DUK_USE_FASTINT)
77551#if defined(DUK_USE_FASTINT) || !defined(DUK_USE_EXEC_PREFER_SIZE)
77561 opcode_shifted = opcode >> 2;
77563#if defined(DUK_USE_FASTINT)
77577 switch (opcode_shifted) {
77596 u2 = ((duk_uint32_t) i2) & 0xffffffffUL;
77597 i3 = (duk_int32_t) (((duk_uint32_t) i1) << (u2 & 0x1fUL));
77598 i3 = i3 & ((duk_int32_t) 0xffffffffUL);
77604 u2 = ((duk_uint32_t) i2) & 0xffffffffUL;
77605 i3 = i1 >> (u2 & 0x1fUL);
77611 u1 = ((duk_uint32_t) i1) & 0xffffffffUL;
77612 u2 = ((duk_uint32_t) i2) & 0xffffffffUL;
77615 u3 = u1 >> (u2 & 0x1fUL);
77616#if defined(DUK_USE_FASTINT)
77617 fi3 = (duk_int64_t) u3;
77618 goto fastint_result_set;
77631#if defined(DUK_USE_FASTINT)
77636 fi3 = (duk_int64_t) i3;
77648#if defined(DUK_USE_EXEC_PREFER_SIZE)
77682#if defined(DUK_USE_FASTINT)
77684 duk_int64_t v1, v2;
77722#if defined(DUK_USE_FASTINT)
77745 duk_int32_t i1, i2;
77755#if defined(DUK_USE_FASTINT)
77814#if defined(DUK_USE_FASTINT)
77816 duk_int64_t x_fi, y_fi, z_fi;
77832 z_fi = (op & 0x02) ? x_fi : y_fi;
77875 z = (op & 0x02) ? x : y;
77937#if defined(DUK_USE_EXEC_PREFER_SIZE)
77955#define DUK__LONGJMP_RESTART 0
77956#define DUK__LONGJMP_RETHROW 1
77958#define DUK__RETHAND_RESTART 0
77959#define DUK__RETHAND_FINISHED 1
78050 volatile duk_bool_t *out_delayed_catch_setup) {
78100 *out_delayed_catch_setup = 1;
78241#if defined(DUK_USE_ASSERTIONS)
78254#if defined(DUK_USE_COROUTINE_SUPPORT)
78279 volatile duk_bool_t *out_delayed_catch_setup) {
78302 DUK_DD(
DUK_DDPRINT(
"handling longjmp: type=%ld, value1=%!T, value2=%!T, iserror=%ld, top=%ld",
78310#if defined(DUK_USE_COROUTINE_SUPPORT)
78376 DUK_DD(
DUK_DDPRINT(
"-> resume with an error, converted to a throw in the resumee, propagate"));
78377 goto check_longjmp;
78389 act_resumee = act_resumee->
parent;
78414 goto wipe_and_return;
78431 if (setup_rc == 0) {
78452 goto wipe_and_return;
78511 DUK_DD(
DUK_DDPRINT(
"-> yield an error, converted to a throw in the resumer, propagate"));
78512 goto check_longjmp;
78532 goto wipe_and_return;
78580 (
void *) act->cat));
78582 &thr->heap->lj.value1,
78584 out_delayed_catch_setup);
78588 goto wipe_and_return;
78597 DUK_DD(
DUK_DDPRINT(
"-> throw caught by a 'finally' clause, restart execution"));
78599 goto wipe_and_return;
78605 if (act == entry_act) {
78609 DUK_D(
DUK_DPRINT(
"-> throw propagated up to entry level, rethrow and exit bytecode executor"));
78617 DUK_DD(
DUK_DDPRINT(
"-> throw not caught by current thread, yield error to resumer and recheck longjmp"));
78625 DUK_ASSERT(thr->resumer->callstack_top >= 2);
78626 DUK_ASSERT(thr->resumer->callstack_curr != NULL);
78627 DUK_ASSERT(thr->resumer->callstack_curr->parent != NULL);
78642 thr->resumer = NULL;
78647 goto check_longjmp;
78656 DUK_D(
DUK_DPRINT(
"caught unknown longjmp type %ld, treat as internal error", (
long) thr->heap->lj.type));
78657 goto convert_to_internal_error;
78667 thr->heap->lj.iserror = 0;
78677convert_to_internal_error:
78729 DUK_DD(
DUK_DDPRINT(
"-> break/continue caught by 'finally', restart execution"));
78736 DUK_DDPRINT(
"-> break/continue caught by a label catcher (in the same function), restart execution"));
78745 "-> break/continue not caught by anything in the current function (should never happen), throw internal error"));
78757#if defined(DUK_USE_COROUTINE_SUPPORT)
78815 if (act == entry_act) {
78837#if defined(DUK_USE_ES6_PROXY)
78863#if defined(DUK_USE_COROUTINE_SUPPORT)
78864 DUK_DD(
DUK_DDPRINT(
"no calling activation, thread finishes (similar to yield)"));
78917 DUK_DD(
DUK_DDPRINT(
"-> return not caught, thread terminated; handle like yield, restart execution in resumer"));
78951#if defined(DUK_USE_INTERRUPT_COUNTER)
78953#define DUK__INT_NOACTION 0
78954#define DUK__INT_RESTART 1
78956#if defined(DUK_USE_DEBUGGER_SUPPORT)
78981 duk_debug_set_paused(thr->
heap);
78989 line = duk_debug_curr_line(thr);
78991 if (act->prev_line !=
line) {
78996 duk_debug_set_paused(thr->
heap);
79011 bp_active = thr->
heap->dbg_breakpoints_active;
79023 duk_debug_set_paused(thr->
heap);
79030 act->prev_line = (duk_uint32_t)
line;
79045 process_messages = 0;
79050 process_messages = 1;
79063 thr->
heap->dbg_last_counter = thr->
heap->dbg_exec_counter;
79066 diff_last = now - thr->
heap->dbg_last_time;
79077 thr->
heap->dbg_last_time = now;
79078 thr->
heap->dbg_state_dirty = 1;
79079 process_messages = 1;
79098 if (process_messages) {
79100 processed_messages = duk_debug_process_messages(thr, 0 );
79112 if (duk_debug_is_attached(thr->
heap)) {
79119 *out_immediate = 1;
79125 if (processed_messages) {
79126 DUK_D(
DUK_DPRINT(
"processed debug messages, restart execution to recheck possibly changed breakpoints"));
79137 DUK_D(
DUK_DPRINT(
"debugger became detached, resume normal execution"));
79153#if defined(DUK_USE_DEBUG)
79156 "instruction counts: executor=%ld, interrupt=%ld",
79159 (
long) thr->
heap->inst_count_exec,
79160 (
long) thr->
heap->inst_count_interrupt));
79177#if defined(DUK_USE_DEBUGGER_SUPPORT)
79201#if defined(DUK_USE_EXEC_TIMEOUT_CHECK)
79224#if defined(DUK_USE_DEBUGGER_SUPPORT)
79225 if (!thr->
heap->dbg_processing && (thr->
heap->dbg_read_cb != NULL || thr->
heap->dbg_detaching)) {
79229 duk__interrupt_handle_debugger(thr, &immediate, &retval);
79267#if defined(DUK_USE_DEBUGGER_SUPPORT)
79280 bp_active = heap->dbg_breakpoints_active;
79281 act->
flags &= ~DUK_ACT_FLAG_BREAKPOINT_ACTIVE;
79317 for (bp_idx = 0; bp_idx < heap->dbg_breakpoint_count; bp_idx++) {
79323 if (bp->
filename == filename && bp->
line >= fun->start_line && bp->
line <= fun->end_line) {
79326 "%s:%ld vs. %s (line %ld vs. %ld-%ld)",
79331 (
long) fun->start_line,
79332 (
long) fun->end_line));
79336 while (funcs != funcs_end) {
79339 if (bp->
line >= inner_fun->start_line && bp->
line <= inner_fun->end_line) {
79353 *bp_active = heap->dbg_breakpoints + bp_idx;
79362 DUK_DD(
DUK_DDPRINT(
"ACTIVE BREAKPOINTS: %ld", (
long) (bp_active - thr->
heap->dbg_breakpoints_active)));
79367 duk_debug_set_paused(thr->
heap);
79458 "have_finally=%ld, catch_binding=%ld, with_binding=%ld (flags=0x%02lx)",
79577 "idx_base=%ld, h_varname=%!O",
79578 (
unsigned long) cat->
flags,
79601 DUK_DDD(
DUK_DDDPRINT(
"ENDTRY: clearing catch active flag (regardless of whether it was set or not)"));
79607 DUK_DDD(
DUK_DDDPRINT(
"ENDTRY: finally part is active, jump through 2nd jump slot with 'normal continuation'"));
79622 DUK_DDDPRINT(
"ENDTRY: no finally part, dismantle catcher, jump through 2nd jump slot (to end of statement)"));
79628 return pc_base + 1;
79669 DUK_DDD(
DUK_DDDPRINT(
"ENDCATCH: finally part is active, jump through 2nd jump slot with 'normal continuation'"));
79684 DUK_DDDPRINT(
"ENDCATCH: no finally part, dismantle catcher, jump through 2nd jump slot (to end of statement)"));
79690 return pc_base + 1;
79719#if defined(DUK_USE_FASTINT)
79728 switch (cont_type) {
79730 DUK_DDD(
DUK_DDDPRINT(
"ENDFIN: finally part finishing with 'normal' (non-abrupt) completion -> "
79731 "dismantle catcher, resume execution after ENDFIN"));
79738 DUK_DDD(
DUK_DDDPRINT(
"ENDFIN: finally part finishing with 'return' complation -> dismantle "
79739 "catcher, handle return, lj.value1=%!T",
79769#if defined(DUK_USE_FASTINT)
79775 lj_type = cont_type;
79780 DUK_DDD(
DUK_DDDPRINT(
"ENDFIN: finally part finishing with abrupt completion, lj_type=%ld -> "
79781 "dismantle catcher, re-throw error",
79782 (
long) cont_type));
79930#if defined(DUK_USE_EXEC_FUN_LOCAL)
79931#define DUK__FUN() fun
79933#define DUK__FUN() ((duk_hcompfunc *) DUK_ACT_GET_FUNC((thr)->callstack_curr))
79937#define DUK__STRICT() ((duk_small_uint_t) DUK_HOBJECT_HAS_STRICT((duk_hobject *) DUK__FUN()))
79943#define DUK__REG(x) (*(thr->valstack_bottom + (x)))
79944#define DUK__REGP(x) (thr->valstack_bottom + (x))
79945#define DUK__CONST(x) (*(consts + (x)))
79946#define DUK__CONSTP(x) (consts + (x))
79955#define DUK__RCBIT_B DUK_BC_REGCONST_B
79956#define DUK__RCBIT_C DUK_BC_REGCONST_C
79957#if defined(DUK_USE_EXEC_REGCONST_OPTIMIZE)
79958#if defined(DUK_USE_PACKED_TVAL)
79959#define DUK__TVAL_SHIFT 3
79961#define DUK__TVAL_SHIFT 4
79963#define DUK__SHIFT_A (DUK_BC_SHIFT_A - DUK__TVAL_SHIFT)
79964#define DUK__SHIFT_B (DUK_BC_SHIFT_B - DUK__TVAL_SHIFT)
79965#define DUK__SHIFT_C (DUK_BC_SHIFT_C - DUK__TVAL_SHIFT)
79966#define DUK__SHIFT_BC (DUK_BC_SHIFT_BC - DUK__TVAL_SHIFT)
79967#define DUK__MASK_A (DUK_BC_UNSHIFTED_MASK_A << DUK__TVAL_SHIFT)
79968#define DUK__MASK_B (DUK_BC_UNSHIFTED_MASK_B << DUK__TVAL_SHIFT)
79969#define DUK__MASK_C (DUK_BC_UNSHIFTED_MASK_C << DUK__TVAL_SHIFT)
79970#define DUK__MASK_BC (DUK_BC_UNSHIFTED_MASK_BC << DUK__TVAL_SHIFT)
79971#define DUK__BYTEOFF_A(ins) (((ins) >> DUK__SHIFT_A) & DUK__MASK_A)
79972#define DUK__BYTEOFF_B(ins) (((ins) >> DUK__SHIFT_B) & DUK__MASK_B)
79973#define DUK__BYTEOFF_C(ins) (((ins) >> DUK__SHIFT_C) & DUK__MASK_C)
79974#define DUK__BYTEOFF_BC(ins) (((ins) >> DUK__SHIFT_BC) & DUK__MASK_BC)
79976#define DUK__REGP_A(ins) ((duk_tval *) (void *) ((duk_uint8_t *) thr->valstack_bottom + DUK__BYTEOFF_A((ins))))
79977#define DUK__REGP_B(ins) ((duk_tval *) (void *) ((duk_uint8_t *) thr->valstack_bottom + DUK__BYTEOFF_B((ins))))
79978#define DUK__REGP_C(ins) ((duk_tval *) (void *) ((duk_uint8_t *) thr->valstack_bottom + DUK__BYTEOFF_C((ins))))
79979#define DUK__REGP_BC(ins) ((duk_tval *) (void *) ((duk_uint8_t *) thr->valstack_bottom + DUK__BYTEOFF_BC((ins))))
79980#define DUK__CONSTP_A(ins) ((duk_tval *) (void *) ((duk_uint8_t *) consts + DUK__BYTEOFF_A((ins))))
79981#define DUK__CONSTP_B(ins) ((duk_tval *) (void *) ((duk_uint8_t *) consts + DUK__BYTEOFF_B((ins))))
79982#define DUK__CONSTP_C(ins) ((duk_tval *) (void *) ((duk_uint8_t *) consts + DUK__BYTEOFF_C((ins))))
79983#define DUK__CONSTP_BC(ins) ((duk_tval *) (void *) ((duk_uint8_t *) consts + DUK__BYTEOFF_BC((ins))))
79984#define DUK__REGCONSTP_B(ins) \
79985 ((duk_tval *) (void *) ((duk_uint8_t *) (((ins) &DUK__RCBIT_B) ? consts : thr->valstack_bottom) + DUK__BYTEOFF_B((ins))))
79986#define DUK__REGCONSTP_C(ins) \
79987 ((duk_tval *) (void *) ((duk_uint8_t *) (((ins) &DUK__RCBIT_C) ? consts : thr->valstack_bottom) + DUK__BYTEOFF_C((ins))))
79990#define DUK__REGP_A(ins) DUK__REGP(DUK_DEC_A((ins)))
79991#define DUK__REGP_B(ins) DUK__REGP(DUK_DEC_B((ins)))
79992#define DUK__REGP_C(ins) DUK__REGP(DUK_DEC_C((ins)))
79993#define DUK__REGP_BC(ins) DUK__REGP(DUK_DEC_BC((ins)))
79994#define DUK__CONSTP_A(ins) DUK__CONSTP(DUK_DEC_A((ins)))
79995#define DUK__CONSTP_B(ins) DUK__CONSTP(DUK_DEC_B((ins)))
79996#define DUK__CONSTP_C(ins) DUK__CONSTP(DUK_DEC_C((ins)))
79997#define DUK__CONSTP_BC(ins) DUK__CONSTP(DUK_DEC_BC((ins)))
79998#define DUK__REGCONSTP_B(ins) ((((ins) &DUK__RCBIT_B) ? consts : thr->valstack_bottom) + DUK_DEC_B((ins)))
79999#define DUK__REGCONSTP_C(ins) ((((ins) &DUK__RCBIT_C) ? consts : thr->valstack_bottom) + DUK_DEC_C((ins)))
80002#if defined(DUK_USE_VERBOSE_EXECUTOR_ERRORS)
80003#define DUK__INTERNAL_ERROR(msg) \
80005 DUK_ERROR_ERROR(thr, (msg)); \
80006 DUK_WO_NORETURN(return;); \
80009#define DUK__INTERNAL_ERROR(msg) \
80011 goto internal_error; \
80015#define DUK__SYNC_CURR_PC() \
80017 duk_activation *duk__act; \
80018 duk__act = thr->callstack_curr; \
80019 duk__act->curr_pc = curr_pc; \
80021#define DUK__SYNC_AND_NULL_CURR_PC() \
80023 duk_activation *duk__act; \
80024 duk__act = thr->callstack_curr; \
80025 duk__act->curr_pc = curr_pc; \
80026 thr->ptr_curr_pc = NULL; \
80029#if defined(DUK_USE_EXEC_PREFER_SIZE)
80030#define DUK__LOOKUP_INDIRECT(idx) \
80032 (idx) = (duk_uint_fast_t) duk_get_uint(thr, (duk_idx_t) (idx)); \
80034#elif defined(DUK_USE_FASTINT)
80035#define DUK__LOOKUP_INDIRECT(idx) \
80037 duk_tval *tv_ind; \
80038 tv_ind = DUK__REGP((idx)); \
80039 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv_ind)); \
80040 DUK_ASSERT(DUK_TVAL_IS_FASTINT(tv_ind)); \
80041 (idx) = (duk_uint_fast_t) DUK_TVAL_GET_FASTINT_U32(tv_ind); \
80044#define DUK__LOOKUP_INDIRECT(idx) \
80046 duk_tval *tv_ind; \
80047 tv_ind = DUK__REGP(idx); \
80048 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv_ind)); \
80049 idx = (duk_uint_fast_t) DUK_TVAL_GET_NUMBER(tv_ind); \
80057 volatile duk_bool_t *out_delayed_catch_setup) {
80081#if defined(DUK_USE_ASSERTIONS)
80083 heap->error_not_allowed = 0;
80116 volatile duk_bool_t delayed_catch_setup = 0;
80129 entry_thread = exec_thr;
80130 heap = entry_thread->
heap;
80149#if defined(DUK_USE_CPP_EXCEPTIONS)
80155 DUK_DDD(
DUK_DDDPRINT(
"after setjmp, delayed catch setup: %ld\n", (
long) delayed_catch_setup));
80160 delayed_catch_setup = 0;
80173#if defined(DUK_USE_CPP_EXCEPTIONS)
80174 }
catch (duk_internal_exception &exc) {
80178#if defined(DUK_USE_CPP_EXCEPTIONS)
80186 entry_call_recursion_depth,
80188 &delayed_catch_setup);
80190#if defined(DUK_USE_CPP_EXCEPTIONS)
80191 catch (duk_fatal_exception &exc) {
80195 }
catch (std::exception &exc) {
80196 const char *what = exc.what();
80200 DUK_D(
DUK_DPRINT(
"unexpected c++ std::exception (perhaps thrown by user code)"));
80206 "caught invalid c++ std::exception '%s' (perhaps thrown by user code)",
80209 }
catch (duk_internal_exception exc) {
80210 DUK_D(
DUK_DPRINT(
"caught api error thrown from unexpected c++ std::exception"));
80214 entry_call_recursion_depth,
80216 &delayed_catch_setup);
80219 DUK_D(
DUK_DPRINT(
"unexpected c++ exception (perhaps thrown by user code)"));
80225 }
catch (duk_internal_exception exc) {
80226 DUK_D(
DUK_DPRINT(
"caught api error thrown from unexpected c++ exception"));
80230 entry_call_recursion_depth,
80232 &delayed_catch_setup);
80257#if defined(DUK_USE_EXEC_FUN_LOCAL)
80263#if defined(DUK_USE_INTERRUPT_COUNTER)
80267#if defined(DUK_USE_ASSERTIONS)
80276#if defined(DUK_USE_PACKED_TVAL)
80344#if !defined(DUK_USE_EXEC_FUN_LOCAL)
80359#if defined(DUK_USE_DEBUGGER_SUPPORT)
80361 duk__executor_recheck_debugger(thr, act, fun);
80367#if defined(DUK_USE_ASSERTIONS)
80376 "consts %p, funcs %p, lev %ld, regbot %ld, regtop %ld, "
80377 "preventcount=%ld",
80379 (
long) (thr->callstack_top - 1),
80383 (
long) (thr->callstack_top - 1),
80384 (
long) (thr->valstack_bottom - thr->valstack),
80385 (
long) (thr->valstack_top - thr->valstack),
80386 (
long) thr->callstack_preventcount));
80403#if defined(DUK_USE_INTERRUPT_COUNTER)
80404 int_ctr = thr->interrupt_counter;
80406 thr->interrupt_counter = int_ctr - 1;
80417 act = thr->callstack_curr;
80427#if defined(DUK_USE_DEBUGGER_SUPPORT)
80428 if (thr->heap->dbg_force_restart) {
80430 thr->heap->dbg_force_restart = 0;
80431 goto restart_execution;
80438 goto restart_execution;
80442#if defined(DUK_USE_INTERRUPT_COUNTER) && defined(DUK_USE_DEBUG)
80446 thr->heap->inst_count_exec++;
80449#if defined(DUK_USE_ASSERTIONS) || defined(DUK_USE_DEBUG)
80452 act = thr->callstack_curr;
80458 "executing bytecode: pc=%ld, ins=0x%08lx, op=%ld, valstack_top=%ld/%ld, nregs=%ld --> %!I",
80460 (
unsigned long) *curr_pc,
80462 (
long) (thr->valstack_top - thr->valstack),
80463 (
long) (thr->valstack_end - thr->valstack),
80469#if defined(DUK_USE_ASSERTIONS)
80476 tv = thr->valstack_top;
80477 while (tv != thr->valstack_end) {
80505#if defined(DUK_USE_EXEC_PREFER_SIZE)
80506#define DUK__REPLACE_TOP_A_BREAK() \
80507 { goto replace_top_a; }
80508#define DUK__REPLACE_TOP_BC_BREAK() \
80509 { goto replace_top_bc; }
80510#define DUK__REPLACE_BOOL_A_BREAK(bval) \
80512 duk_bool_t duk__bval; \
80513 duk__bval = (bval); \
80514 DUK_ASSERT(duk__bval == 0 || duk__bval == 1); \
80515 duk_push_boolean(thr, duk__bval); \
80516 DUK__REPLACE_TOP_A_BREAK(); \
80519#define DUK__REPLACE_TOP_A_BREAK() \
80521 DUK__REPLACE_TO_TVPTR(thr, DUK__REGP_A(ins)); \
80524#define DUK__REPLACE_TOP_BC_BREAK() \
80526 DUK__REPLACE_TO_TVPTR(thr, DUK__REGP_BC(ins)); \
80529#define DUK__REPLACE_BOOL_A_BREAK(bval) \
80531 duk_bool_t duk__bval; \
80532 duk_tval *duk__tvdst; \
80533 duk__bval = (bval); \
80534 DUK_ASSERT(duk__bval == 0 || duk__bval == 1); \
80535 duk__tvdst = DUK__REGP_A(ins); \
80536 DUK_TVAL_SET_BOOLEAN_UPDREF(thr, duk__tvdst, duk__bval); \
80580#if defined(DUK_USE_EXEC_PREFER_SIZE)
80612#if defined(DUK_USE_FASTINT)
80626#if defined(DUK_USE_EXEC_PREFER_SIZE)
80653 tv2 = thr->valstack_bottom - 1;
80698#if defined(DUK_USE_EXEC_PREFER_SIZE)
80715#if defined(DUK_USE_EXEC_PREFER_SIZE)
80742#if !defined(DUK_USE_EXEC_PREFER_SIZE)
80757 act = thr->callstack_curr;
80769#if defined(DUK_USE_EXEC_PREFER_SIZE)
80782#define DUK__EQ_BODY(barg, carg) \
80785 tmp = duk_js_equals(thr, (barg), (carg)); \
80786 DUK_ASSERT(tmp == 0 || tmp == 1); \
80787 DUK__REPLACE_BOOL_A_BREAK(tmp); \
80789#define DUK__NEQ_BODY(barg, carg) \
80792 tmp = duk_js_equals(thr, (barg), (carg)); \
80793 DUK_ASSERT(tmp == 0 || tmp == 1); \
80795 DUK__REPLACE_BOOL_A_BREAK(tmp); \
80797#define DUK__SEQ_BODY(barg, carg) \
80800 tmp = duk_js_strict_equals((barg), (carg)); \
80801 DUK_ASSERT(tmp == 0 || tmp == 1); \
80802 DUK__REPLACE_BOOL_A_BREAK(tmp); \
80804#define DUK__SNEQ_BODY(barg, carg) \
80807 tmp = duk_js_strict_equals((barg), (carg)); \
80808 DUK_ASSERT(tmp == 0 || tmp == 1); \
80810 DUK__REPLACE_BOOL_A_BREAK(tmp); \
80812#if defined(DUK_USE_EXEC_PREFER_SIZE)
80868#define DUK__COMPARE_BODY(arg1, arg2, flags) \
80871 tmp = duk_js_compare_helper(thr, (arg1), (arg2), (flags)); \
80872 DUK_ASSERT(tmp == 0 || tmp == 1); \
80873 DUK__REPLACE_BOOL_A_BREAK(tmp); \
80875#define DUK__GT_BODY(barg, carg) DUK__COMPARE_BODY((carg), (barg), 0)
80876#define DUK__GE_BODY(barg, carg) DUK__COMPARE_BODY((barg), (carg), DUK_COMPARE_FLAG_EVAL_LEFT_FIRST | DUK_COMPARE_FLAG_NEGATE)
80877#define DUK__LT_BODY(barg, carg) DUK__COMPARE_BODY((barg), (carg), DUK_COMPARE_FLAG_EVAL_LEFT_FIRST)
80878#define DUK__LE_BODY(barg, carg) DUK__COMPARE_BODY((carg), (barg), DUK_COMPARE_FLAG_NEGATE)
80879#if defined(DUK_USE_EXEC_PREFER_SIZE)
80961#if defined(DUK_USE_EXEC_PREFER_SIZE)
80989#if defined(DUK_USE_EXEC_PREFER_SIZE)
81006#if defined(DUK_USE_ES7_EXP_OPERATOR)
81082#if defined(DUK_USE_ES7_EXP_OPERATOR)
81102#if defined(DUK_USE_EXEC_PREFER_SIZE)
81231#define DUK__INSTOF_BODY(barg, carg) \
81234 tmp = duk_js_instanceof(thr, (barg), (carg)); \
81235 DUK_ASSERT(tmp == 0 || tmp == 1); \
81236 DUK__REPLACE_BOOL_A_BREAK(tmp); \
81238#define DUK__IN_BODY(barg, carg) \
81241 tmp = duk_js_in(thr, (barg), (carg)); \
81242 DUK_ASSERT(tmp == 0 || tmp == 1); \
81243 DUK__REPLACE_BOOL_A_BREAK(tmp); \
81245#if defined(DUK_USE_EXEC_PREFER_SIZE)
81276#if defined(DUK_USE_EXEC_PREFER_SIZE)
81349#if !defined(DUK_USE_EXEC_PREFER_SIZE)
81399#if defined(DUK_USE_EXEC_PREFER_SIZE)
81413#define DUK__GETPROP_BODY(barg, carg) \
81419 (void) duk_hobject_getprop(thr, (barg), (carg)); \
81420 DUK__REPLACE_TOP_A_BREAK(); \
81422#define DUK__GETPROPC_BODY(barg, carg) \
81425 duk_tval *tv__targ; \
81426 (void) duk_hobject_getprop(thr, (barg), (carg)); \
81427 DUK_GC_TORTURE(thr->heap); \
81428 tv__targ = DUK_GET_TVAL_NEGIDX(thr, -1); \
81429 if (DUK_UNLIKELY(!duk_is_callable_tval(thr, tv__targ))) { \
81434 duk_call_setup_propcall_error(thr, (barg), (carg)); \
81436 DUK__REPLACE_TOP_A_BREAK(); \
81438#define DUK__PUTPROP_BODY(aarg, barg, carg) \
81447 (void) duk_hobject_putprop(thr, (aarg), (barg), (carg), DUK__STRICT()); \
81450#define DUK__DELPROP_BODY(barg, carg) \
81457 rc = duk_hobject_delprop(thr, (barg), (carg), DUK__STRICT()); \
81458 DUK_ASSERT(rc == 0 || rc == 1); \
81459 DUK__REPLACE_BOOL_A_BREAK(rc); \
81461#if defined(DUK_USE_EXEC_PREFER_SIZE)
81467#if defined(DUK_USE_VERBOSE_ERRORS)
81491#if defined(DUK_USE_VERBOSE_ERRORS)
81543 if (is_func_decl) {
81547 thr->valstack_top++;
81551 act = thr->callstack_curr;
81553 if (is_func_decl) {
81568#if defined(DUK_USE_REGEXP_SUPPORT)
81614 act = thr->callstack_curr;
81643 act = thr->callstack_curr;
81655 act = thr->callstack_curr;
81677 act = thr->callstack_curr;
81699 act = thr->callstack_curr;
81714 act = thr->callstack_curr;
81728#define DUK__RETURN_SHARED() \
81730 duk_small_uint_t ret_result; \
81735 DUK_ASSERT(thr->ptr_curr_pc == NULL); \
81736 ret_result = duk__handle_return(thr, entry_act); \
81737 if (ret_result == DUK__RETHAND_RESTART) { \
81738 goto restart_execution; \
81740 DUK_ASSERT(ret_result == DUK__RETHAND_FINISHED); \
81743#if defined(DUK_USE_EXEC_PREFER_SIZE)
81756 thr->valstack_top++;
81772 thr->valstack_top++;
81783 thr->valstack_top++;
81792#if defined(DUK_USE_REFERENCE_COUNTING)
81796 thr->valstack_top++;
81801 thr->valstack_top++;
81822 act = thr->callstack_curr;
81828 "idx_base=%ld, h_varname=%!O, label_id=%ld",
81841#if (defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)) || defined(DUK_USE_ASSERTIONS)
81844#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
81848 act = thr->callstack_curr;
81863 goto restart_execution;
81871 goto restart_execution;
81900 goto restart_execution;
81920#if defined(DUK_USE_AUGMENT_ERROR_THROW)
81927#if defined(DUK_USE_DEBUGGER_SUPPORT)
81928 duk_err_check_debugger_integration(thr);
81931 DUK_ASSERT(thr->heap->lj.jmpbuf_ptr != NULL);
81951#if defined(DUK_USE_PREFER_SIZE)
82000#if !defined(DUK_USE_EXEC_FUN_LOCAL)
82014 goto restart_execution;
82021#if !defined(DUK_USE_EXEC_FUN_LOCAL)
82048#if !defined(DUK_USE_EXEC_FUN_LOCAL)
82062 goto restart_execution;
82066#if !defined(DUK_USE_EXEC_FUN_LOCAL)
82075#if defined(DUK_USE_ASSERTIONS)
82085#if !defined(DUK_USE_PREFER_SIZE)
82094#if defined(DUK_USE_ASSERTIONS)
82105#if !defined(DUK_USE_PREFER_SIZE)
82142 idx_end = idx +
count;
82144#if defined(DUK_USE_EXEC_INDIRECT_BOUND_CHECK)
82170 }
while (idx < idx_end);
82186 duk_uint32_t arr_idx;
82204 idx_end = idx +
count;
82206#if defined(DUK_USE_EXEC_INDIRECT_BOUND_CHECK)
82216#if defined(DUK_USE_FASTINT)
82242 }
while (idx < idx_end);
82264#if defined(DUK_USE_FASTINT)
82296#if defined(DUK_USE_DEBUGGER_SUPPORT)
82297 if (duk_debug_is_attached(thr->heap)) {
82300 duk_debug_halt_execution(thr, 1 );
82302 goto restart_execution;
82304 DUK_D(
DUK_DPRINT(
"DEBUGGER statement ignored, debugger not attached"));
82307 DUK_D(
DUK_DPRINT(
"DEBUGGER statement ignored, no debugger support"));
82325#if defined(DUK_USE_ES6)
82332#if !defined(DUK_USE_EXEC_PREFER_SIZE)
82333#if !defined(DUK_USE_ES7_EXP_OPERATOR)
82339#if !defined(DUK_USE_ES6)
82342#if !defined(DUK_USE_VERBOSE_ERRORS)
82420#if defined(DUK_USE_EXEC_PREFER_SIZE)
82431#if !defined(DUK_USE_VERBOSE_EXECUTOR_ERRORS)
82439#undef DUK__BYTEOFF_A
82440#undef DUK__BYTEOFF_B
82441#undef DUK__BYTEOFF_BC
82442#undef DUK__BYTEOFF_C
82443#undef DUK__COMPARE_BODY
82446#undef DUK__CONSTP_A
82447#undef DUK__CONSTP_B
82448#undef DUK__CONSTP_BC
82449#undef DUK__CONSTP_C
82450#undef DUK__DELPROP_BODY
82453#undef DUK__GETPROPC_BODY
82454#undef DUK__GETPROP_BODY
82457#undef DUK__INSTOF_BODY
82458#undef DUK__INTERNAL_ERROR
82459#undef DUK__INT_NOACTION
82460#undef DUK__INT_RESTART
82463#undef DUK__LONGJMP_RESTART
82464#undef DUK__LONGJMP_RETHROW
82465#undef DUK__LOOKUP_INDIRECT
82471#undef DUK__NEQ_BODY
82472#undef DUK__PUTPROP_BODY
82476#undef DUK__REGCONSTP_B
82477#undef DUK__REGCONSTP_C
82483#undef DUK__REPLACE_BOOL_A_BREAK
82484#undef DUK__REPLACE_TOP_A_BREAK
82485#undef DUK__REPLACE_TOP_BC_BREAK
82486#undef DUK__REPLACE_TO_TVPTR
82487#undef DUK__RETHAND_FINISHED
82488#undef DUK__RETHAND_RESTART
82489#undef DUK__RETURN_SHARED
82490#undef DUK__SEQ_BODY
82493#undef DUK__SHIFT_BC
82495#undef DUK__SNEQ_BODY
82497#undef DUK__SYNC_AND_NULL_CURR_PC
82498#undef DUK__SYNC_CURR_PC
82499#undef DUK__TVAL_SHIFT
82585 return (p != NULL ? 1 : 0);
82590#if defined(DUK_USE_FASTINT)
82601#if defined(DUK_USE_PREFER_SIZE)
82607#if defined(DUK_USE_PREFER_SIZE)
82670#if defined(DUK_USE_PREFER_SIZE)
82735 return (p != NULL ? 1.0 : 0.0);
82741#if defined(DUK_USE_FASTINT)
82763#if defined(DUK_USE_PREFER_SIZE)
82804#if defined(DUK_USE_PREFER_SIZE)
82808#if defined(DUK_USE_PREFER_SIZE)
82847#if defined(DUK_USE_FASTINT)
82856 DUK_ASSERT(d >= -2147483648.0 && d <= 2147483647.0);
82858 return (duk_int32_t) d;
82864#if defined(DUK_USE_FASTINT)
82875 return (duk_uint32_t) d;
82911#if defined(DUK_USE_PARANOID_MATH)
82949#if defined(DUK_USE_PARANOID_MATH)
83029#if defined(DUK_USE_FASTINT)
83092 return ((func_x == func_y) && (lf_flags_x == lf_flags_y)) ? 1 : 0;
83094#if defined(DUK_USE_FASTINT)
83159 goto recursive_call;
83165 goto recursive_call;
83174 goto recursive_call;
83181 goto recursive_call;
83209 const duk_uint8_t *buf2,
83215 prefix_len = (len1 <= len2 ? len1 : len2);
83220 rc =
duk_memcmp_unsafe((
const void *) buf1, (
const void *) buf2, (
size_t) prefix_len);
83224 }
else if (rc > 0) {
83232 }
else if (len1 > len2) {
83277#if defined(DUK_USE_FASTINT)
83288#if defined(DUK_USE_PARANOID_MATH)
83395#if defined(DUK_USE_FASTINT)
83402#if !defined(DUK_USE_PREFER_SIZE)
83462#if defined(DUK_USE_PREFER_SIZE)
83518#if defined(DUK_USE_SYMBOL_BUILTIN)
83522 if (!skip_sym_check) {
83552 goto error_invalid_rval;
83603 goto pop2_and_false;
83611#if defined(DUK_USE_VERBOSE_ERRORS)
83613 if (proto == NULL) {
83614 goto error_invalid_rval_noproto;
83641 goto pop3_and_false;
83645#if defined(DUK_USE_ES6_PROXY)
83651 }
else if (val == proto) {
83652 goto pop3_and_true;
83657 }
while (--sanity > 0);
83679#if defined(DUK_USE_VERBOSE_ERRORS)
83680error_invalid_rval_noproto:
83686#if defined(DUK_USE_SYMBOL_BUILTIN)
83809#if defined(DUK_USE_FASTINT)
83831#if defined(DUK_USE_ES6_PROXY)
83882 if (res >= 0x1999999aUL) {
83890 res = 0xfffffffaUL + dig;
83894 res = res * 10U + dig;
83901 if (blen == (duk_uint32_t) 1) {
83913 }
while (--blen > 0);
83921#if !defined(DUK_USE_HSTRING_ARRIDX)
83927 const duk_uint8_t *p;
83953 return duk_js_to_arrayindex_hstring_fast_known(h);
84043 while (tv < tv_end) {
84050 while (funcs < funcs_end) {
84067#if defined(DUK_USE_PC2LINE)
84070#if defined(DUK_USE_FUNC_FILENAME_PROPERTY)
84073#if defined(DUK_USE_NONSTD_FUNC_SOURCE_PROPERTY)
84124#if defined(DUK_USE_DEBUGGER_SUPPORT)
84125 fun_clos->start_line = fun_temp->start_line;
84126 fun_clos->end_line = fun_temp->end_line;
84150 DUK_DD(
DUK_DDPRINT(
"fun_temp heaphdr flags: 0x%08lx, fun_clos heaphdr flags: 0x%08lx",
84170 add_auto_proto = 0;
84190#if defined(DUK_USE_FUNC_NAME_PROPERTY)
84204 if (outer_lex_env) {
84205 proto = outer_lex_env;
84332 len_value = fun_temp->nargs;
84333 DUK_DD(
DUK_DDPRINT(
"closure length defaulted from nargs -> %ld", (
long) len_value));
84355 if (add_auto_proto) {
84380#if defined(DUK_USE_NONSTD_FUNC_CALLER_PROPERTY)
84381 DUK_DDD(
DUK_DDDPRINT(
"function is non-strict and non-standard 'caller' property in use, add initial 'null' value"));
84385 DUK_DDD(
DUK_DDDPRINT(
"function is non-strict and non-standard 'caller' property not used"));
84396#if defined(DUK_USE_FUNC_NAME_PROPERTY)
84519 if (varmap != NULL) {
84566#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
84608 if (varmap == NULL) {
84654#if defined(DUK_USE_FASTINT)
84661 regbase_byteoff = ((
duk_hdecenv *) env)->regbase_byteoff;
84734 if (env->
thread == NULL) {
84747#if defined(DUK_USE_FASTINT)
84847 if (env == NULL && act != NULL) {
84851 DUK_DDD(
DUK_DDDPRINT(
"duk__get_identifier_reference: env is NULL, activation is non-NULL -> "
84852 "delayed env case, look up activation regs first"));
84860 "name=%!O -> value=%!T, attrs=%ld, has_this=%ld, env=%!O, holder=%!O "
84861 "(found from register bindings when env=NULL)",
84890 "(not found from register bindings when env=NULL)"));
84891 goto fail_not_found;
84914 while (env != NULL) {
84918 DUK_DDD(
DUK_DDDPRINT(
"duk__get_identifier_reference, name=%!O, considering env=%p -> %!iO",
84945 "name=%!O -> value=%!T, attrs=%ld, has_this=%ld, env=%!O, holder=%!O "
84946 "(declarative environment record, scope open, found in regs)",
84959 out->
attrs = attrs;
84965 "name=%!O -> value=%!T, attrs=%ld, has_this=%ld, env=%!O, holder=%!O "
84966 "(declarative environment record, found in properties)",
85006#if defined(DUK_USE_ES6_PROXY)
85035 "name=%!O -> value=%!T, attrs=%ld, has_this=%ld, env=%!O, holder=%!O "
85036 "(object environment record)",
85049 "(not found from first traversed env)"));
85050 goto fail_not_found;
85093 (
void *) thr, (
void *) env, (
duk_heaphdr *) name,
85193 "identifier '%s' undefined",
85244 "(env -> %!dO, val -> %!T)",
85293 tv_val = ref.
value;
85320 "identifier '%s' undefined",
85408 "(treated as silent success)",
85490 DUK_DDD(
DUK_DDDPRINT(
"declvar: thr=%p, env=%p, name=%!O, val=%!T, prop_flags=0x%08lx, is_func_decl=%ld "
85496 (
unsigned long) prop_flags,
85497 (
unsigned int) is_func_decl,
85561 "updated E5.1 processing"));
85600 "accessor -> reject"));
85601 goto fail_existing_attributes;
85605 "plain property which is not writable and "
85606 "enumerable -> reject"));
85607 goto fail_existing_attributes;
85611 "is plain, enumerable, and writable -> "
85612 "allow redeclaration"));
85615 if (holder == ref.
holder) {
85648 "value -> %!T, prop_flags=0x%08lx",
85650 (
unsigned long) prop_flags));
85692 goto fail_not_extensible;
85703fail_existing_attributes:
85704fail_not_extensible:
85727 val = &tv_val_copy;
85825#define DUK__MAX_RE_DECESC_DIGITS 9
85826#define DUK__MAX_RE_QUANT_DIGITS 9
85829#define DUK__ISDIGIT(x) ((x) >= DUK_ASC_0 && (x) <= DUK_ASC_9)
85830#define DUK__ISHEXDIGIT(x) duk__is_hex_digit((x))
85831#define DUK__ISOCTDIGIT(x) ((x) >= DUK_ASC_0 && (x) <= DUK_ASC_7)
85832#define DUK__ISDIGIT03(x) ((x) >= DUK_ASC_0 && (x) <= DUK_ASC_3)
85833#define DUK__ISDIGIT47(x) ((x) >= DUK_ASC_4 && (x) <= DUK_ASC_7)
85836#define DUK__LOOKUP(lex_ctx, idx) ((lex_ctx)->window[(idx)].codepoint)
85837#define DUK__ADVANCECHARS(lex_ctx, count) duk__advance_chars((lex_ctx), (count))
85838#define DUK__ADVANCEBYTES(lex_ctx, count) duk__advance_bytes((lex_ctx), (count))
85839#define DUK__INITBUFFER(lex_ctx) duk__initbuffer((lex_ctx))
85840#define DUK__APPENDBUFFER(lex_ctx, x) duk__appendbuffer((lex_ctx), (duk_codepoint_t) (x))
85841#define DUK__APPENDBUFFER_ASCII(lex_ctx, x) duk__appendbuffer_ascii((lex_ctx), (duk_codepoint_t) (x))
85844#define DUK__L0() DUK__LOOKUP(lex_ctx, 0)
85845#define DUK__L1() DUK__LOOKUP(lex_ctx, 1)
85846#define DUK__L2() DUK__LOOKUP(lex_ctx, 2)
85847#define DUK__L3() DUK__LOOKUP(lex_ctx, 3)
85848#define DUK__L4() DUK__LOOKUP(lex_ctx, 4)
85849#define DUK__L5() DUK__LOOKUP(lex_ctx, 5)
85852#define DUK__ADVTOK(advbytes, tok) ((((advbytes) * sizeof(duk_lexer_codepoint)) << 8) + (tok))
85923#if defined(DUK_USE_LEXER_SLIDING_WINDOW)
85928 const duk_uint8_t *p, *p_end;
85929#if defined(DUK_USE_STRICT_UTF8_SOURCE)
85942 for (; cp != cp_end; cp++) {
85944 cp->
line = input_line;
85964 if ((x == 0x000aUL) || ((x == 0x000dUL) && (p >= p_end || *p != 0x000aUL))) {
85988 goto error_encoding;
85989 }
else if (x < 0xe0UL) {
85992#if defined(DUK_USE_STRICT_UTF8_SOURCE)
85996 }
else if (x < 0xf0UL) {
85999#if defined(DUK_USE_STRICT_UTF8_SOURCE)
86003 }
else if (x < 0xf8UL) {
86006#if defined(DUK_USE_STRICT_UTF8_SOURCE)
86012 goto error_encoding;
86017 goto error_clipped;
86020 while (contlen > 0) {
86023 if ((y & 0xc0U) != 0x80U) {
86025 goto error_encoding;
86034 if (x > 0x10ffffUL) {
86035 goto error_encoding;
86037#if defined(DUK_USE_STRICT_UTF8_SOURCE)
86038 if (x < mincp || (x >= 0xd800UL && x <= 0xdfffUL) || x == 0xfffeUL) {
86039 goto error_encoding;
86044 if ((x == 0x2028UL) || (x == 0x2029UL)) {
86100 const duk_uint8_t *p;
86101#if defined(DUK_USE_STRICT_UTF8_SOURCE)
86116 p = lex_ctx->
input + input_offset;
86151 goto error_encoding;
86152 }
else if (x < 0xe0UL) {
86155#if defined(DUK_USE_STRICT_UTF8_SOURCE)
86159 }
else if (x < 0xf0UL) {
86162#if defined(DUK_USE_STRICT_UTF8_SOURCE)
86166 }
else if (x < 0xf8UL) {
86169#if defined(DUK_USE_STRICT_UTF8_SOURCE)
86175 goto error_encoding;
86180 goto error_clipped;
86184 for (i = 1; i < len; i++) {
86187 if ((y & 0xc0U) != 0x80U) {
86189 goto error_encoding;
86197 if (x > 0x10ffffUL) {
86198 goto error_encoding;
86200#if defined(DUK_USE_STRICT_UTF8_SOURCE)
86201 if (x < mincp || (x >= 0xd800UL && x <= 0xdfffUL) || x == 0xfffeUL) {
86202 goto error_encoding;
86211 if ((x == 0x2028UL) || (x == 0x2029UL)) {
86233 duk_memmove((
void *) lex_ctx->
window, (
const void *) ((duk_uint8_t *) lex_ctx->
window + count_bytes), (
size_t) keep_bytes);
86237 for (; cp != cp_end; cp++) {
86240 cp->
codepoint = duk__read_char(lex_ctx);
86321#if defined(DUK_USE_EXPLICIT_NULL_INIT)
86322#if defined(DUK_USE_LEXER_SLIDING_WINDOW)
86325 lex_ctx->
thr = NULL;
86326 lex_ctx->
input = NULL;
86327 lex_ctx->
buf = NULL;
86407#if defined(DUK_USE_ES6_UNICODE_ESCAPE)
86449 escval = (escval << 4) + dig;
86451 DUK_ASSERT(escval >= 0 && escval <= 0xffffL);
86455#if defined(DUK_USE_ES6_UNICODE_ESCAPE)
86459 escval = (escval << 4) + dig;
86460 if (escval > 0x10ffffL) {
86468 DUK_ASSERT(escval >= 0 && escval <= 0x10ffffL);
86506 for (lookup_idx = 1; lookup_idx <= 3; lookup_idx++) {
86509 if (tmp < DUK_ASC_0 || tmp >
DUK_ASC_7) {
86525 if (lookup_idx == 1) {
86530 }
else if (lookup_idx == 2 && cp == 0) {
86537 if (reject_annex_b) {
86548 DUK_ASSERT((cp >= 0 && cp <= 0xff) || (cp == -1 && reject_annex_b));
86569 }
else if (x ==
'\\') {
86619 if (x == 0x000d &&
DUK__L2() == 0x000a) {
86644 }
else if (x < 0) {
86645 goto fail_unterminated;
86663 }
else if (x >= 0x20 && x <= 0x7f) {
86673 goto fail_unterminated;
86782 goto fail_token_limit;
86789 out_token->
str1 = NULL;
86790 out_token->
str2 = NULL;
86843 goto restart_lineupdate;
86844#if defined(DUK_USE_SHEBANG_COMMENTS)
86876 goto fail_unterm_comment;
86887 goto restart_lineupdate;
86888 }
else if (regexp_mode) {
86889#if defined(DUK_USE_REGEXP_SUPPORT)
86954 goto fail_unterm_regexp;
86966 }
else if (state == 1) {
86968 }
else if (state == 2) {
87001 goto fail_regexp_support;
87047#if defined(DUK_USE_HTML_COMMENTS)
87111#if defined(DUK_USE_HTML_COMMENTS)
87139#if defined(DUK_USE_ES7_EXP_OPERATOR)
87209 goto skip_slow_path;
87213 if (x == 0x000d &&
DUK__L1() == 0x000a) {
87224 goto restart_lineupdate;
87299 str = out_token->
str1;
87394 goto fail_number_literal;
87439 if (state >= 1 || s2n_radix != 10) {
87445 if (state >= 2 || s2n_radix != 10) {
87466 if (s2n_radix != 10) {
87478 goto fail_number_literal;
87489 goto fail_number_literal;
87492 out_token->
num = val;
87497 }
else if (x < 0) {
87509 out_token->
t = advtok & 0xff;
87511 out_token->
t_nores = out_token->
t;
87513 out_token->
lineterm = got_lineterm;
87535fail_number_literal:
87547fail_unterm_comment:
87551#if !defined(DUK_USE_REGEXP_SUPPORT)
87552fail_regexp_support:
87558#if defined(DUK_USE_REGEXP_SUPPORT)
87574 goto fail_token_limit;
87598 out_token->
qmin = 0;
87599 out_token->
qmax = 1;
87610 out_token->
qmin = 0;
87622 out_token->
qmin = 1;
87635 duk_uint32_t val1 = 0;
87638#if defined(DUK_USE_ES6_REGEXP_SYNTAX)
87642#if defined(DUK_USE_ES6_REGEXP_SYNTAX)
87652 val1 = val1 * 10 + (duk_uint32_t)
duk__hexval(x);
87655 goto invalid_quantifier;
87658 goto invalid_quantifier;
87663 goto invalid_quantifier;
87665 out_token->
qmin = val1;
87675 goto invalid_quantifier;
87678 goto invalid_quantifier;
87682 out_token->
qmin = val2;
87683 out_token->
qmax = val1;
87686 out_token->
qmin = val1;
87687 out_token->
qmax = val1;
87692 goto invalid_quantifier;
87703 invalid_quantifier:
87704#if defined(DUK_USE_ES6_REGEXP_SYNTAX)
87712 goto fail_quantifier;
87735 out_token->
num = 0x000c;
87737 out_token->
num = 0x000a;
87739 out_token->
num = 0x0009;
87741 out_token->
num = 0x000d;
87743 out_token->
num = 0x000b;
87747 out_token->
num = (duk_uint32_t) (x % 32);
87778 out_token->
num = 0x0000;
87782 duk_uint32_t val = 0;
87784 for (i = 0;; i++) {
87797 out_token->
num = val;
87799#if defined(DUK_USE_ES6_REGEXP_SYNTAX)
87800 }
else if (y >= 0) {
87817 out_token->
num = (duk_uint32_t) y;
87866#if !defined(DUK_USE_ES6_REGEXP_SYNTAX)
87872 goto fail_invalid_char;
87884 out_token->
num = (duk_uint32_t) x;
87894 out_token->
t = advtok & 0xff;
87909#if !defined(DUK_USE_ES6_REGEXP_SYNTAX)
87944 const duk_uint16_t *ranges,
87946 const duk_uint16_t *ranges_end;
87950 ranges_end = ranges + num;
87951 while (ranges < ranges_end) {
87977 goto fail_unterm_charclass;
87980 gen_range(userdata, start, start, 0);
88089#if defined(DUK_USE_ES6_REGEXP_SYNTAX)
88099#if defined(DUK_USE_ES6_REGEXP_SYNTAX)
88100 }
else if (x >= 0) {
88135 gen_range(userdata, start, start, 0);
88146 gen_range(userdata, start, ch, 0);
88150 gen_range(userdata, start, start, 0);
88170fail_unterm_charclass:
88178#undef DUK__ADVANCEBYTES
88179#undef DUK__ADVANCECHARS
88181#undef DUK__APPENDBUFFER
88182#undef DUK__APPENDBUFFER_ASCII
88183#undef DUK__INITBUFFER
88185#undef DUK__ISDIGIT03
88186#undef DUK__ISDIGIT47
88187#undef DUK__ISHEXDIGIT
88188#undef DUK__ISOCTDIGIT
88196#undef DUK__MAX_RE_DECESC_DIGITS
88197#undef DUK__MAX_RE_QUANT_DIGITS
88212#define DUK__IEEE_DOUBLE_EXP_BIAS 1023
88213#define DUK__IEEE_DOUBLE_EXP_MIN (-1022)
88215#define DUK__DIGITCHAR(x) duk_lc_digits[(x)]
88233 69, 44, 35, 30, 27, 25, 23, 22, 20, 20,
88234 20, 19, 19, 18, 18, 17, 17, 17, 16, 16,
88235 16, 16, 16, 15, 15, 15, 15, 15, 15, 14,
88245 { 957, -1147 }, { 605, -725 }, { 479, -575 }, { 414, -496 }, { 372, -446 }, { 342, -411 }, { 321, -384 },
88246 { 304, -364 }, { 291, -346 }, { 279, -334 }, { 268, -323 }, { 260, -312 }, { 252, -304 }, { 247, -296 },
88247 { 240, -289 }, { 236, -283 }, { 231, -278 }, { 227, -273 }, { 223, -267 }, { 220, -263 }, { 216, -260 },
88248 { 213, -256 }, { 210, -253 }, { 208, -249 }, { 205, -246 }, { 203, -244 }, { 201, -241 }, { 198, -239 },
88249 { 196, -237 }, { 195, -234 }, { 193, -232 }, { 191, -230 }, { 190, -228 }, { 188, -226 }, { 187, -225 },
88267#define DUK__BI_MAX_PARTS 37
88269#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
88270#define DUK__BI_PRINT(name, x) duk__bi_print((name), (x))
88272#define DUK__BI_PRINT(name, x)
88281#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
88289 p +=
DUK_SPRINTF(p,
"%p n=%ld", (
void *) x, (
long) x->n);
88293 for (i = x->n - 1; i >= 0; i--) {
88294 p +=
DUK_SPRINTF(p,
" %08lx", (
unsigned long) x->v[i]);
88301#if defined(DUK_USE_ASSERTIONS)
88304 ((x->
n == 0) || (x->
v[x->
n - 1] != 0)) );
88311 for (i = x->
n - 1; i >= 0; i--) {
88312 if (x->
v[i] != 0) {
88329 duk_memcpy((
void *) x->
v, (
const void *) y->
v, (
size_t) (
sizeof(duk_uint32_t) * (
size_t) n));
88348 duk_uint32_t tx, ty;
88361 for (i = nx - 1; i >= 0; i--) {
88383#if defined(DUK_USE_64BIT_OPS)
88402 for (i = 0; i < ny; i++) {
88408 x->
v[i] = (duk_uint32_t) (tmp & 0xffffffffUL);
88413 x->
v[i++] = (duk_uint32_t) tmp;
88423 duk_uint32_t carry, tmp1, tmp2;
88440 for (i = 0; i < ny; i++) {
88457 carry = (tmp2 <= tmp1 ? 1U : 0U);
88459 carry = (tmp2 < tmp1 ? 1U : 0U);
88499#if defined(DUK_USE_64BIT_OPS)
88502 duk_uint32_t ty, tz;
88513 for (i = 0; i < ny; i++) {
88520 tmp = (duk_int64_t) ty - (duk_int64_t) tz + tmp;
88521 x->
v[i] = (duk_uint32_t) ((duk_uint64_t) tmp & 0xffffffffUL);
88533 duk_uint32_t tmp1, tmp2, borrow;
88543 for (i = 0; i < ny; i++) {
88559 borrow = (tmp2 >= tmp1 ? 1U : 0U);
88561 borrow = (tmp2 > tmp1 ? 1U : 0U);
88613 duk_memzero((
void *) x->
v, (
size_t) (
sizeof(duk_uint32_t) * (
size_t) nx));
88617 for (i = 0; i < y->
n; i++) {
88618#if defined(DUK_USE_64BIT_OPS)
88619 duk_uint64_t tmp = 0U;
88620 for (j = 0; j < nz; j++) {
88621 tmp += (duk_uint64_t) y->
v[i] * (duk_uint64_t) z->
v[j] + x->
v[i + j];
88622 x->
v[i + j] = (duk_uint32_t) (tmp & 0xffffffffUL);
88629 x->
v[i + j] = (duk_uint32_t) tmp;
88646 duk_uint32_t a, b, c, d, e, f;
88647 duk_uint32_t r, s, t;
88654 for (j = 0; j < nz; j++) {
88681 t = s + ((t & 0xffffUL) << 16);
88690 t = s + ((t & 0xffffUL) << 16);
88701 (
unsigned long) y->
v[i],
88702 (
unsigned long) z->
v[j],
88703 (
unsigned long) x->
v[i + j],
88705 (
unsigned long) s));
88714 x->
v[i + j] = (duk_uint32_t) f;
88750 return (x->
n == 0) || ((x->
v[0] & 0x01) == 0);
88755 return (x->
n == 0);
88766 return (
duk_small_int_t) (x->
n == 2) && (x->
v[0] == 0U) && (x->
v[1] == (1U << (52 - 32)));
88776 duk_memzero((
void *) x->
v,
sizeof(duk_uint32_t) * (
size_t) n);
88778 x->
v[n - 1] = (((duk_uint32_t) 1) << r);
88840#define DUK__MAX_OUTPUT_DIGITS 1040
88843#define DUK__MAX_FORMATTED_LENGTH 1040
88846#define DUK__NUMCONV_CTX_NUM_BIGINTS 7
88847#define DUK__NUMCONV_CTX_BIGINTS_SIZE (sizeof(duk__bigint) * DUK__NUMCONV_CTX_NUM_BIGINTS)
88878#define DUK__DRAGON4_OUTPUT_PREINC(nc_ctx, preinc_idx, x) \
88880 DUK_ASSERT((preinc_idx) -1 >= 0); \
88881 DUK_ASSERT((preinc_idx) -1 < DUK__MAX_OUTPUT_DIGITS); \
88882 ((nc_ctx)->digits[(preinc_idx) -1]) = (duk_uint8_t) (x); \
88901 t = x / (duk_uint32_t) radix;
88914 duk_memmove((
void *) buf, (
const void *) p, (
size_t) len);
88953 lowest_mantissa = 0;
88959 if (nc_ctx->
e >= 0) {
88962 if (lowest_mantissa) {
88978 "lowest mantissa value for this exponent -> "
89002 "not lowest mantissa for this exponent -> "
89016 lowest_mantissa ) {
89028 "lowest mantissa for this exponent -> "
89053 "lowest mantissa for this exponent -> "
89261 (
long) nc_ctx->
k));
89266 (
long) nc_ctx->
k));
89272 DUK_DDD(
DUK_DDDPRINT(
"tc1=true, tc2=false: output d --> %ld (k=%ld)", (
long) d, (
long) nc_ctx->
k));
89281 (
long) nc_ctx->
k));
89286 DUK_DDD(
DUK_DDDPRINT(
"tc1=false, tc2=false: output d --> %ld (k=%ld)", (
long) d, (
long) nc_ctx->
k));
89303 int pos = nc_ctx->
k -
count + 1;
89309 if (pos <= nc_ctx->req_digits) {
89330#if defined(DUK_USE_DEBUG_LEVEL) && (DUK_USE_DEBUG_LEVEL >= 2)
89332 duk_uint8_t buf[2048];
89335 for (i = 0; i < nc_ctx->
count; i++) {
89337 if (t < 0 || t > 36) {
89338 buf[i] = (duk_uint8_t)
'?';
89343 DUK_DDD(
DUK_DDDPRINT(
"-> generated digits; k=%ld, digits='%s'", (
long) nc_ctx->
k, (
const char *) buf));
89360 duk_uint8_t roundup_limit;
89370 if (round_idx >= nc_ctx->
count) {
89373 (
long) nc_ctx->
count));
89375 }
else if (round_idx < 0) {
89376 DUK_DDD(
DUK_DDDPRINT(
"round_idx out of bounds (%ld < 0) -> no rounding", (
long) round_idx));
89388 roundup_limit = (duk_uint8_t) ((nc_ctx->
B + 1) / 2);
89391 if (*p >= roundup_limit) {
89396 if (p == &nc_ctx->
digits[0]) {
89399 (
const void *) (&nc_ctx->
digits[0]),
89400 (
size_t) (
sizeof(
char) * (
size_t) nc_ctx->
count));
89408 DUK_DDD(
DUK_DDDPRINT(
"fixed-format rounding carry: B=%ld, roundup_limit=%ld, p=%p, digits=%p",
89410 (
long) roundup_limit,
89412 (
void *) nc_ctx->
digits));
89416 if (++t < nc_ctx->B) {
89418 *p = (duk_uint8_t) t;
89429#define DUK__NO_EXP (65536)
89472 buf = (duk_uint8_t *) &nc_ctx->
f;
89486 (k - digits >= 1)) ||
89487 ((k > 21 || k <= -6) && (radix == 10))) {
89488 DUK_DDD(
DUK_DDDPRINT(
"use exponential notation: k=%ld -> expt=%ld", (
long) k, (
long) (k - 1)));
89499 pos = (k >= 1 ? k : 1);
89505 pos_end = k - digits;
89508 pos_end = k - nc_ctx->
count;
89515 "digits=%ld, abs_pos=%ld",
89518 (
long) nc_ctx->
count,
89526 while (pos > pos_end) {
89527 DUK_DDD(
DUK_DDDPRINT(
"digit generation: pos=%ld, pos_end=%ld", (
long) pos, (
long) pos_end));
89529 *q++ = (duk_uint8_t)
'.';
89532 *q++ = (duk_uint8_t)
'0';
89533 }
else if (pos <= k - nc_ctx->
count) {
89534 *q++ = (duk_uint8_t)
'0';
89536 dig = nc_ctx->
digits[k - pos];
89571 *q++ = (duk_uint8_t) expt_sign;
89607 nc_ctx->
f.
v[0] = tmp;
89609 nc_ctx->
f.
v[1] = tmp & 0x000fffffUL;
89618 nc_ctx->
f.
v[1] |= 0x00100000UL;
89690 expt = nc_ctx->
k - 1;
89697 }
else if (expt >= -1022) {
89704 bitstart = 1023 + expt;
89709 bitround = bitstart + 52;
89711 DUK_DDD(
DUK_DDDPRINT(
"ieee expt=%ld, bitstart=%ld, bitround=%ld", (
long) expt, (
long) bitstart, (
long) bitround));
89730 for (i = 0; i < 52; i++) {
89731 bitidx = bitstart + 52 - 1 - i;
89732 if (bitidx >= nc_ctx->
count) {
89734 }
else if (bitidx < 0) {
89737 v = nc_ctx->
digits[bitidx];
89740 t += v << (i % 32);
89752 t += ((duk_uint32_t) expt) << 20;
89837 duk_uint8_t *buf = (duk_uint8_t *) (&nc_ctx->
f);
89838 duk_uint8_t *p = buf;
89841 if (neg && uval != 0) {
89843 *p++ = (duk_uint8_t)
'-';
89868 nc_ctx->is_s2n = 0;
89871 nc_ctx->abs_pos = 0;
89873 nc_ctx->is_fixed = 1;
89878 nc_ctx->abs_pos = 1;
89879 nc_ctx->req_digits = (-digits + 1) - 1;
89881 nc_ctx->req_digits = digits + 1;
89884 nc_ctx->is_fixed = 0;
89885 nc_ctx->req_digits = 0;
89894 if (nc_ctx->is_fixed) {
89895 if (nc_ctx->abs_pos) {
89896 count = digits + 2;
89898 count = digits + 1;
89906 nc_ctx->count =
count;
89951 roundpos = -digits;
89952 roundpos = nc_ctx->k - roundpos;
89958 (
long) nc_ctx->count,
90004 const duk_uint8_t *p;
90010 (
unsigned long) flags));
90073 DUK_DDD(
DUK_DDDPRINT(
"parse failed: trailing garbage after matching 'Infinity' not allowed"));
90077 goto negcheck_and_ret;
90085 DUK_DDD(
DUK_DDDPRINT(
"detected 0x/0X hex prefix, changing radix and preventing fractions and exponent"));
90090 DUK_DDD(
DUK_DDDPRINT(
"detected 0n oct prefix, changing radix and preventing fractions and exponent"));
90101 DUK_DDD(
DUK_DDDPRINT(
"detected 0o oct prefix, changing radix and preventing fractions and exponent"));
90104 DUK_DDD(
DUK_DDDPRINT(
"detected 0b bin prefix, changing radix and preventing fractions and exponent"));
90107 if (detect_radix > 0) {
90108 radix = detect_radix;
90176 "dig_whole=%ld, dig_frac=%ld, dig_expt=%ld, dig_lzero=%ld, dig_prec=%ld",
90178 (
int) ((ch >= 0x20 && ch <= 0x7e) ? ch :
'?'),
90197 if (dig_frac >= 0 || dig_expt >= 0) {
90258 DUK_ASSERT((dig >= 0 && dig <= 35) || dig == 255);
90260 if (dig >= radix) {
90270 if (dig_expt < 0) {
90277 if (f_zero && dig == 0) {
90281 if (dig_frac < 0) {
90299 if (dig_frac >= 0) {
90309 expt = expt * radix + dig;
90315 goto parse_explimit_error;
90323 if (dig_lzero > 0 && dig_whole > 1) {
90332 if (dig_whole == 0) {
90333 if (dig_frac == 0) {
90337 }
else if (dig_frac > 0) {
90341 "leading integer digit(s)"));
90359 if (dig_frac == 0) {
90365 }
else if (dig_frac > 0) {
90378 if (dig_expt == 0) {
90390 DUK_DDDPRINT(
"expt=%ld, expt_adj=%ld, net exponent -> %ld", (
long) expt, (
long) expt_adj, (
long) (expt + expt_adj)));
90395 if (nc_ctx->
f.
n <= 1 &&
90404 if (nc_ctx->
f.
n == 1) {
90405 res = (double) nc_ctx->
f.
v[0];
90409 goto negcheck_and_ret;
90429 if (nc_ctx->
f.
n == 0) {
90435 goto negcheck_and_ret;
90444 if (expt > explim->
upper) {
90447 goto negcheck_and_ret;
90448 }
else if (expt < explim->lower) {
90451 goto negcheck_and_ret;
90500 goto negcheck_and_ret;
90517parse_explimit_error:
90529#undef DUK__BI_MAX_PARTS
90530#undef DUK__BI_PRINT
90531#undef DUK__DIGITCHAR
90532#undef DUK__DRAGON4_OUTPUT_PREINC
90533#undef DUK__IEEE_DOUBLE_EXP_BIAS
90534#undef DUK__IEEE_DOUBLE_EXP_MIN
90535#undef DUK__MAX_FORMATTED_LENGTH
90536#undef DUK__MAX_OUTPUT_DIGITS
90538#undef DUK__NUMCONV_CTX_BIGINTS_SIZE
90539#undef DUK__NUMCONV_CTX_NUM_BIGINTS
90562#if defined(DUK_USE_REGEXP_SUPPORT)
90568#define DUK__RE_INITIAL_BUFSIZE 64
90570#define DUK__RE_BUFLEN(re_ctx) DUK_BW_GET_SIZE(re_ctx->thr, &re_ctx->bw)
90581 duk_int32_t charlen;
90593 duk_uint32_t start_captures;
90594 duk_uint32_t end_captures;
90613 return ((duk_uint32_t) (-x)) * 2 + 1;
90615 return ((duk_uint32_t) x) * 2;
90629 return (duk_uint32_t) len;
90637#if defined(DUK_USE_PREFER_SIZE)
90669 while (
count-- > 0) {
90675 duk_uint32_t offset,
90676 duk_uint32_t data_offset,
90677 duk_uint32_t data_length) {
90711 skip -= (duk_int32_t) len;
90715#if defined(DUK_USE_PREFER_SIZE)
90721 if (skip < -0x3fL) {
90724 if (skip < -0x3ffL) {
90727 if (skip < -0x7fffL) {
90730 if (skip < -0xfffffL) {
90733 if (skip < -0x1ffffffL) {
90736 if (skip < -0x3fffffffL) {
90745 if (skip >= -0x3eL) {
90747 }
else if (skip >= -0x3fdL) {
90749 }
else if (skip >= -0x7ffcL) {
90751 }
else if (skip >= -0xffffbL) {
90753 }
else if (skip >= -0x1fffffaL) {
90755 }
else if (skip >= -0x3ffffff9L) {
90854#if defined(DUK_USE_REGEXP_CANON_BITMAP)
90873 for (blk = start_blk; blk <= end_blk; blk++) {
90875 mask = 1U << (blk & 0x07);
90887 if (blk > start_blk) {
90902 if (start >= 0x10000) {
90918 DUK_DD(
DUK_DDPRINT(
"duk__regexp_generate_ranges(): re_ctx=%p, range=[%ld,%ld] direct=%ld",
90927 DUK_DD(
DUK_DDPRINT(
"direct or not case sensitive, emit range: [%ld,%ld]", (
long) r1, (
long) r2));
90932 DUK_DD(
DUK_DDPRINT(
"case sensitive, process range: [%ld,%ld]", (
long) r1, (
long) r2));
90937 for (i = r1 + 1; i <= r2;) {
90946 r_end += r_disc - i;
90948 if (t == r_end + 1) {
90965 for (i = r1 + 1; i <= r2; i++) {
90967 if (t == r_end + 1) {
90970 DUK_DD(
DUK_DDPRINT(
"canonicalized, emit range: [%ld,%ld]", (
long) r_start, (
long) r_end));
90978 DUK_DD(
DUK_DDPRINT(
"canonicalized, emit range: [%ld,%ld]", (
long) r_start, (
long) r_end));
91044 const duk_uint16_t *ranges,
91049 duk__append_2bytes(re_ctx, (duk_uint8_t) re_op, (duk_uint8_t)
count);
91057 duk_int32_t atom_start_offset = -1;
91058 duk_int32_t atom_char_length = 0;
91059 duk_uint32_t atom_start_captures = re_ctx->
captures;
91060 duk_int32_t unpatched_disjunction_split = -1;
91061 duk_int32_t unpatched_disjunction_jump = -1;
91062 duk_uint32_t entry_offset = (duk_uint32_t)
DUK__RE_BUFLEN(re_ctx);
91063 duk_int32_t res_charlen = 0;
91076 out_atom_info->start_captures = re_ctx->
captures;
91086 duk_int32_t new_atom_char_length;
91087 duk_int32_t new_atom_start_offset;
91090 duk_uint32_t new_atom_start_captures;
91095 "re token: %ld (num=%ld, char=%c)",
91101 new_atom_start_offset = -1;
91102 new_atom_char_length = -1;
91103 new_atom_start_captures = re_ctx->
captures;
91114 if (unpatched_disjunction_jump >= 0) {
91115 duk_uint32_t offset;
91117 DUK_ASSERT(unpatched_disjunction_split >= 0);
91118 offset = (duk_uint32_t) unpatched_disjunction_jump;
91122 (duk_uint32_t) unpatched_disjunction_split,
91123 (duk_int32_t) offset - unpatched_disjunction_split);
91128 unpatched_disjunction_split = (duk_int32_t) (entry_offset + 1);
91132 unpatched_disjunction_jump = (duk_int32_t)
DUK__RE_BUFLEN(re_ctx);
91139 if (atom_start_offset < 0) {
91147 if (atom_char_length >= 0) {
91160 duk_int32_t atom_code_length;
91161 duk_uint32_t offset;
91162 duk_uint32_t qmin, qmax;
91166 if (atom_char_length == 0) {
91179 offset = (duk_uint32_t) atom_start_offset;
91184 offset +=
duk__insert_u32(re_ctx, offset, (duk_uint32_t) atom_char_length);
91205 duk_int32_t atom_code_length;
91206 duk_uint32_t atom_copies;
91207 duk_uint32_t tmp_qmin, tmp_qmax;
91218 DUK_ASSERT(atom_start_captures <= re_ctx->captures);
91219 if (atom_start_captures != re_ctx->
captures) {
91220 DUK_ASSERT(atom_start_captures < re_ctx->captures);
91222 (
long) atom_start_captures,
91227 (duk_uint32_t) atom_start_offset,
91228 (re_ctx->
captures - atom_start_captures) * 2U);
91229 duk__insert_u32(re_ctx, (duk_uint32_t) atom_start_offset, (atom_start_captures + 1) * 2);
91233 DUK_DDDPRINT(
"no need to wipe captures: atom_start_captures == re_ctx->captures == %ld",
91234 (
long) atom_start_captures));
91237 atom_code_length = (duk_int32_t)
DUK__RE_BUFLEN(re_ctx) - atom_start_offset;
91242 while (tmp_qmin > 0) {
91244 (duk_uint32_t) atom_start_offset,
91245 (duk_uint32_t) atom_code_length);
91264 (duk_uint32_t) atom_start_offset,
91265 (duk_uint32_t) atom_code_length);
91291 while (tmp_qmax > 0) {
91294 (duk_uint32_t) atom_start_offset,
91295 (duk_uint32_t) atom_code_length);
91309 duk__remove_slice(re_ctx, (duk_uint32_t) atom_start_offset, (duk_uint32_t) atom_code_length);
91334 duk_uint32_t offset;
91335 duk_uint32_t opcode =
91354 new_atom_char_length = 1;
91372 new_atom_char_length = 1;
91391 new_atom_char_length = 1;
91411 duk_uint32_t backref = (duk_uint32_t) re_ctx->
curr_token.
num;
91415 new_atom_char_length = -1;
91424 new_atom_char_length = -1;
91439 new_atom_char_length = tmp_disj.
charlen;
91468 duk_uint32_t offset;
91473 new_atom_char_length = 1;
91509 if (new_atom_start_offset >= 0) {
91510 if (new_atom_char_length < 0) {
91512 }
else if (res_charlen >= 0) {
91514 res_charlen += new_atom_char_length;
91519 atom_start_offset = new_atom_start_offset;
91520 atom_char_length = new_atom_char_length;
91521 atom_start_captures = new_atom_start_captures;
91527 if (unpatched_disjunction_jump >= 0) {
91528 duk_uint32_t offset;
91530 DUK_ASSERT(unpatched_disjunction_split >= 0);
91531 offset = (duk_uint32_t) unpatched_disjunction_jump;
91535 (duk_uint32_t) unpatched_disjunction_split,
91536 (duk_int32_t) offset - unpatched_disjunction_split);
91540 out_atom_info->end_captures = re_ctx->
captures;
91542 out_atom_info->
charlen = res_charlen;
91553 const duk_uint8_t *p;
91554 const duk_uint8_t *p_end;
91555 duk_uint32_t flags = 0;
91562 while (p < p_end) {
91563 duk_uint8_t c = *p++;
91565 case (duk_uint8_t)
'g': {
91572 case (duk_uint8_t)
'i': {
91579 case (duk_uint8_t)
'm': {
91621 const duk_uint8_t *p;
91643 for (i = 0; i < n; i++) {
91654 *q++ = (duk_uint8_t) c;
91725 DUK_DD(
DUK_DDPRINT(
"regexp compiler ctx initialized, flags=0x%08lx, recursion_limit=%ld",
91734 lex_point.
line = 1;
91786 DUK_DD(
DUK_DDPRINT(
"regexp compilation successful, bytecode: %!T, escaped source: %!T",
91841#undef DUK__RE_BUFLEN
91842#undef DUK__RE_INITIAL_BUFSIZE
91861#if defined(DUK_USE_REGEXP_SUPPORT)
91880 return -((duk_int32_t) (t >> 1));
91882 return (duk_int32_t) (t >> 1);
91887 const duk_uint8_t **ptr,
91888 const duk_uint8_t *ptr_start,
91889 const duk_uint8_t *ptr_end,
91891 const duk_uint8_t *p;
91895 if (p < ptr_start || p > ptr_end) {
91899 while (
count > 0) {
91902 if (p < ptr_start) {
91905 if ((*p & 0xc0) != 0x80) {
91921 const duk_uint8_t **ptr,
91922 const duk_uint8_t *ptr_start,
91923 const duk_uint8_t *ptr_end,
91925 const duk_uint8_t *p;
91928 if (p < ptr_start || p >= ptr_end) {
91932 while (
count > 0) {
91939 if (p >= ptr_end || ((*p & 0xc0) != 0x80)) {
92029 (
long) (sp - re_ctx->
input),
92104 if (c >= r1 && c <= r2) {
92129 if (sp <= re_ctx->input) {
92144 const duk_uint8_t *tmp_sp;
92171 if (sp <= re_ctx->input) {
92181 const duk_uint8_t *tmp_sp = sp;
92208 const duk_uint8_t *sub_sp;
92222 const duk_uint8_t *sub_sp;
92234 duk_uint32_t q, qmin, qmax;
92236 const duk_uint8_t *sub_sp;
92242 (
unsigned long) qmin,
92243 (
unsigned long) qmax,
92247 while (q <= qmax) {
92265 duk_uint32_t q, qmin, qmax, atomlen;
92267 const duk_uint8_t *sub_sp;
92274 (
unsigned long) qmin,
92275 (
unsigned long) qmax,
92276 (
unsigned long) atomlen,
92288 while (q >= qmin) {
92303 DUK_DDD(
DUK_DDDPRINT(
"greedy quantifier, backtrack %ld characters (atomlen)", (
long) atomlen));
92311 const duk_uint8_t *old;
92312 const duk_uint8_t *sub_sp;
92315 if (idx >= re_ctx->
nsaved) {
92317 DUK_D(
DUK_DPRINT(
"internal error, regexp save index insane: idx=%ld", (
long) idx));
92318 goto internal_error;
92320 old = re_ctx->
saved[idx];
92321 re_ctx->
saved[idx] = sp;
92327 re_ctx->
saved[idx] = old;
92339 duk_uint32_t idx_start, idx_count;
92340#if defined(DUK_USE_EXPLICIT_NULL_INIT)
92341 duk_uint32_t idx_end, idx;
92343 duk_uint8_t **range_save;
92344 const duk_uint8_t *sub_sp;
92348 DUK_DDD(
DUK_DDDPRINT(
"wipe saved range: start=%ld, count=%ld -> [%ld,%ld] (captures [%ld,%ld])",
92352 (
long) (idx_start + idx_count - 1),
92353 (
long) (idx_start / 2),
92354 (
long) ((idx_start + idx_count - 1) / 2)));
92355 if (idx_start + idx_count > re_ctx->
nsaved || idx_count == 0) {
92357 DUK_D(
DUK_DPRINT(
"internal error, regexp wipe indices insane: idx_start=%ld, idx_count=%ld",
92359 (
long) idx_count));
92360 goto internal_error;
92367 duk_memcpy(range_save, re_ctx->
saved + idx_start,
sizeof(duk_uint8_t *) * idx_count);
92368#if defined(DUK_USE_EXPLICIT_NULL_INIT)
92369 idx_end = idx_start + idx_count;
92370 for (idx = idx_start; idx < idx_end; idx++) {
92371 re_ctx->
saved[idx] = NULL;
92374 duk_memzero((
void *) (re_ctx->
saved + idx_start),
sizeof(duk_uint8_t *) * idx_count);
92382 (
long) (idx_start + idx_count - 1),
92383 (
long) (idx_start / 2),
92384 (
long) ((idx_start + idx_count - 1) / 2)));
92391 DUK_DDD(
DUK_DDDPRINT(
"fail: restore wiped/resaved values [%ld,%ld] (captures [%ld,%ld])",
92393 (
long) (idx_start + idx_count - 1),
92394 (
long) (idx_start / 2),
92395 (
long) ((idx_start + idx_count - 1) / 2)));
92397 (
const void *) range_save,
92398 sizeof(duk_uint8_t *) * idx_count);
92419 duk_uint8_t **full_save;
92420 const duk_uint8_t *sub_sp;
92434 goto lookahead_fail;
92438 goto lookahead_fail;
92453 duk_memcpy((
void *) re_ctx->
saved, (
const void *) full_save,
sizeof(duk_uint8_t *) * re_ctx->
nsaved);
92473 const duk_uint8_t *p;
92477 if (idx < 2 || idx + 1 >= re_ctx->
nsaved) {
92480 goto internal_error;
92482 if (!re_ctx->
saved[idx] || !re_ctx->
saved[idx + 1]) {
92486 (
long) (idx + 1)));
92489 DUK_DDD(
DUK_DDDPRINT(
"backreference: match saved[%ld,%ld]", (
long) idx, (
long) (idx + 1)));
92491 p = re_ctx->
saved[idx];
92492 while (p < re_ctx->saved[idx + 1]) {
92518 DUK_D(
DUK_DPRINT(
"internal error, regexp opcode error: %ld", (
long) op));
92519 goto internal_error;
92554 duk_uint8_t *p_buf;
92555 const duk_uint8_t *pc;
92556 const duk_uint8_t *sp;
92561 duk_uint32_t char_offset;
92608 re_ctx.
saved = NULL;
92631#if defined(DUK_USE_EXPLICIT_NULL_INIT)
92632 for (i = 0; i < re_ctx.
nsaved; i++) {
92633 re_ctx.
saved[i] = (duk_uint8_t *) NULL;
92635#elif defined(DUK_USE_ZERO_BUFFER_DATA)
92641 DUK_DDD(
DUK_DDDPRINT(
"regexp ctx initialized, flags=0x%08lx, nsaved=%ld, recursion_limit=%ld, steps_limit=%ld",
92678 char_offset = (duk_uint32_t) d;
92685 char_offset = (duk_uint32_t) 0;
92710 (
long) char_offset,
92712 (
const void *) re_ctx.
input,
92779#if defined(DUK_USE_ASSERTIONS)
92782 duk_uint32_t char_end_offset = 0;
92796#if defined(DUK_USE_ASSERTIONS)
92811 for (i = 0; i < re_ctx.
nsaved; i += 2) {
92820 (
const char *) re_ctx.
saved[i],
92828 char_end_offset = char_offset + (duk_uint32_t)
duk_get_length(thr, -1);
92905#if defined(DUK_USE_SELF_TESTS)
92914} duk__test_double_union;
92917#define DUK__FAILED(msg) \
92919 DUK_D(DUK_DPRINT("self test failed: " #msg " at " DUK_FILE_MACRO ":" DUK_MACRO_STRINGIFY(DUK_LINE_MACRO))); \
92923#define DUK__DBLUNION_CMP_TRUE(a, b) \
92925 if (duk_memcmp((const void *) (a), (const void *) (b), sizeof(duk__test_double_union)) != 0) { \
92926 DUK__FAILED("double union compares false (expected true)"); \
92930#define DUK__DBLUNION_CMP_FALSE(a, b) \
92932 if (duk_memcmp((const void *) (a), (const void *) (b), sizeof(duk__test_double_union)) == 0) { \
92933 DUK__FAILED("double union compares true (expected false)"); \
92940} duk__test_u32_union;
92942#if defined(DUK_USE_INTEGER_LE)
92943#define DUK__U32_INIT(u, a, b, c, d) \
92950#elif defined(DUK_USE_INTEGER_ME)
92951#error integer mixed endian not supported now
92952#elif defined(DUK_USE_INTEGER_BE)
92953#define DUK__U32_INIT(u, a, b, c, d) \
92961#error unknown integer endianness
92964#if defined(DUK_USE_DOUBLE_LE)
92965#define DUK__DOUBLE_INIT(u, a, b, c, d, e, f, g, h) \
92976#define DUK__DOUBLE_COMPARE(u, a, b, c, d, e, f, g, h) \
92977 ((u)->x[0] == (h) && (u)->x[1] == (g) && (u)->x[2] == (f) && (u)->x[3] == (e) && (u)->x[4] == (d) && (u)->x[5] == (c) && \
92978 (u)->x[6] == (b) && (u)->x[7] == (a))
92979#elif defined(DUK_USE_DOUBLE_ME)
92980#define DUK__DOUBLE_INIT(u, a, b, c, d, e, f, g, h) \
92991#define DUK__DOUBLE_COMPARE(u, a, b, c, d, e, f, g, h) \
92992 ((u)->x[0] == (d) && (u)->x[1] == (c) && (u)->x[2] == (b) && (u)->x[3] == (a) && (u)->x[4] == (h) && (u)->x[5] == (g) && \
92993 (u)->x[6] == (f) && (u)->x[7] == (e))
92994#elif defined(DUK_USE_DOUBLE_BE)
92995#define DUK__DOUBLE_INIT(u, a, b, c, d, e, f, g, h) \
93006#define DUK__DOUBLE_COMPARE(u, a, b, c, d, e, f, g, h) \
93007 ((u)->x[0] == (a) && (u)->x[1] == (b) && (u)->x[2] == (c) && (u)->x[3] == (d) && (u)->x[4] == (e) && (u)->x[5] == (f) && \
93008 (u)->x[6] == (g) && (u)->x[7] == (h))
93010#error unknown double endianness
93020 if (!(
sizeof(duk_int8_t) == 1 &&
sizeof(duk_uint8_t) == 1 &&
sizeof(duk_int16_t) == 2 &&
sizeof(duk_uint16_t) == 2 &&
93021 sizeof(duk_int32_t) == 4 &&
sizeof(duk_uint32_t) == 4)) {
93022 DUK__FAILED(
"duk_(u)int{8,16,32}_t size");
93024#if defined(DUK_USE_64BIT_OPS)
93025 if (!(
sizeof(duk_int64_t) == 8 &&
sizeof(duk_uint64_t) == 8)) {
93026 DUK__FAILED(
"duk_(u)int64_t size");
93034 DUK__FAILED(
"duk_size_t is smaller than duk_uint_t");
93037 DUK__FAILED(
"duk_int_t is not 32 bits");
93040 return error_count;
93050#if defined(DUK_USE_PACKED_TVAL)
93051 if (
sizeof(
void *) > 4) {
93052 DUK__FAILED(
"packed duk_tval in use but sizeof(void *) > 4");
93056 return error_count;
93071 if (((
volatile duk_uint8_t *) &test)[0] != (duk_uint8_t) 0xff) {
93072 DUK__FAILED(
"two's complement arithmetic");
93075 return error_count;
93086 duk__test_u32_union u1;
93087 duk__test_double_union u2;
93094 DUK__U32_INIT(&u1, 0xde, 0xad, 0xbe, 0xef);
93095 DUK__DOUBLE_INIT(&u2, 0x42, 0x37, 0xc1, 0x7c, 0x6d, 0xc4, 0x00, 0x00);
93097 if (u1.i != (duk_uint32_t) 0xdeadbeefUL) {
93098 DUK__FAILED(
"duk_uint32_t byte order");
93102 DUK__FAILED(
"double byte order");
93105 return error_count;
93114 volatile duk_uint32_t x32_input, x32_output;
93116 volatile duk_uint16_t x16_input, x16_output;
93120#if defined(DUK_BSWAP64)
93121 volatile duk_uint64_t x64_input, x64_output;
93129 x16_input = 0xbeefUL;
93133 if (x16_output != (duk_uint16_t) 0xefbeUL) {
93134 DUK__FAILED(
"DUK_BSWAP16");
93139 if (x16 != (duk_uint16_t) 0xefbeUL) {
93140 DUK__FAILED(
"DUK_BSWAP16");
93143 x32_input = 0xdeadbeefUL;
93147 if (x32_output != (duk_uint32_t) 0xefbeaddeUL) {
93148 DUK__FAILED(
"DUK_BSWAP32");
93151 x32 = 0xdeadbeefUL;
93153 if (x32 != (duk_uint32_t) 0xefbeaddeUL) {
93154 DUK__FAILED(
"DUK_BSWAP32");
93157#if defined(DUK_BSWAP64)
93160 x64 = DUK_BSWAP64(x64);
93163 DUK__FAILED(
"DUK_BSWAP64");
93167 x64 = DUK_BSWAP64(x64);
93169 DUK__FAILED(
"DUK_BSWAP64");
93186 du_diff = du.
d - 2.008366013071895;
93190 if (du_diff > 1e-15) {
93196 DUK_D(
DUK_DPRINT(
"Result of DUK_DBLUNION_DOUBLE_NTOH: %02x %02x %02x %02x %02x %02x %02x %02x\n",
93197 (
unsigned int) du.
uc[0], (
unsigned int) du.
uc[1],
93198 (
unsigned int) du.
uc[2], (
unsigned int) du.
uc[3],
93199 (
unsigned int) du.
uc[4], (
unsigned int) du.
uc[5],
93200 (
unsigned int) du.
uc[6], (
unsigned int) du.
uc[7]));
93202 DUK__FAILED(
"DUK_DBLUNION_DOUBLE_NTOH");
93205 return error_count;
93215 if (
sizeof(duk__test_double_union) != 8) {
93216 DUK__FAILED(
"invalid union size");
93219 return error_count;
93231#if defined(DUK_USE_PACKED_TVAL)
93233 duk__test_double_union a, b;
93248 DUK__DBLUNION_CMP_TRUE(&a, &b);
93260 DUK__DBLUNION_CMP_TRUE(&a, &b);
93272 DUK__DBLUNION_CMP_TRUE(&a, &b);
93274 return error_count;
93276 DUK_D(
DUK_DPRINT(
"skip double aliasing self test when duk_tval is not packed"));
93287 duk__test_double_union a, b;
93291 DUK__DBLUNION_CMP_FALSE(&a, &b);
93293 return error_count;
93305 duk__test_double_union a, b, c;
93309 fesetround(FE_UPWARD);
93310 fesetround(FE_DOWNWARD);
93311 fesetround(FE_TOWARDZERO);
93314 fesetround(FE_TONEAREST);
93329 DUK__DOUBLE_INIT(&a, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
93330 DUK__DOUBLE_INIT(&b, 0x3c, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
93333 if (!DUK__DOUBLE_COMPARE(&c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)) {
93334 DUK_D(
DUK_DPRINT(
"broken result (native endiannesss): %02x %02x %02x %02x %02x %02x %02x %02x",
93335 (
unsigned int) c.x[0],
93336 (
unsigned int) c.x[1],
93337 (
unsigned int) c.x[2],
93338 (
unsigned int) c.x[3],
93339 (
unsigned int) c.x[4],
93340 (
unsigned int) c.x[5],
93341 (
unsigned int) c.x[6],
93342 (
unsigned int) c.x[7]));
93343 DUK__FAILED(
"invalid result from 1.0 + 0.5ulp");
93353 DUK__DOUBLE_INIT(&a, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01);
93354 DUK__DOUBLE_INIT(&b, 0x3c, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
93357 if (!DUK__DOUBLE_COMPARE(&c, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02)) {
93358 DUK_D(
DUK_DPRINT(
"broken result (native endiannesss): %02x %02x %02x %02x %02x %02x %02x %02x",
93359 (
unsigned int) c.x[0],
93360 (
unsigned int) c.x[1],
93361 (
unsigned int) c.x[2],
93362 (
unsigned int) c.x[3],
93363 (
unsigned int) c.x[4],
93364 (
unsigned int) c.x[5],
93365 (
unsigned int) c.x[6],
93366 (
unsigned int) c.x[7]));
93367 DUK__FAILED(
"invalid result from (1.0 + ulp) + 0.5ulp");
93373 return error_count;
93384 duk__test_double_union u1, u2;
93390 u1.d =
DUK_FMOD(10.0, 4294967296.0);
93392 DUK__DBLUNION_CMP_TRUE(&u1, &u2);
93394 u1.d =
DUK_FMOD(4294967306.0, 4294967296.0);
93396 DUK__DBLUNION_CMP_TRUE(&u1, &u2);
93398 u1.d =
DUK_FMOD(73014444042.0, 4294967296.0);
93400 DUK__DBLUNION_CMP_TRUE(&u1, &u2);
93408 u1.d =
DUK_FMOD(8987183256397123.0, 4294967296.0);
93410 DUK__DBLUNION_CMP_TRUE(&u1, &u2);
93411 t1 = 8987183256397123.0;
93416 DUK__DBLUNION_CMP_TRUE(&u1, &u2);
93419 u1.d =
DUK_FMOD(-10.0, 4294967296.0);
93421 DUK__DBLUNION_CMP_TRUE(&u1, &u2);
93423 u1.d =
DUK_FMOD(-4294967306.0, 4294967296.0);
93425 DUK__DBLUNION_CMP_TRUE(&u1, &u2);
93427 u1.d =
DUK_FMOD(-73014444042.0, 4294967296.0);
93429 DUK__DBLUNION_CMP_TRUE(&u1, &u2);
93431 return error_count;
93444#if (DUK_USE_ALIGN_BY == 4)
93446 DUK__FAILED(
"sizeof(duk_hbuffer_fixed) not aligned to 4");
93448#elif (DUK_USE_ALIGN_BY == 8)
93450 DUK__FAILED(
"sizeof(duk_hbuffer_fixed) not aligned to 8");
93452#elif (DUK_USE_ALIGN_BY == 1)
93455#error invalid DUK_USE_ALIGN_BY
93457 return error_count;
93469#if defined(DUK_USE_64BIT_OPS)
93470 volatile duk_int64_t i;
93475 i = (duk_int64_t) d;
93477 DUK__FAILED(
"casting 2147483648.0 to duk_int64_t failed");
93482 return error_count;
93509 DUK__FAILED(
"double to duk_small_uint_t cast failed");
93519 DUK__FAILED(
"double to duk_small_uint_t cast failed");
93522 return error_count;
93538 uv = (duk_uint32_t) dv;
93540 if (uv != 0xdeadbeefUL) {
93541 DUK__FAILED(
"double to duk_uint32_t cast failed");
93544 return error_count;
93566 if (alloc_func == NULL || realloc_func == NULL || free_func == NULL) {
93570 for (i = 1; i <= 256; i++) {
93576 for (j = 0; j < i; j++) {
93577 ((
unsigned char *) ptr)[j] = (
unsigned char) (0x80 + j);
93579 new_ptr = realloc_func(udata, ptr, 1024);
93580 if (new_ptr == NULL) {
93582 free_func(udata, ptr);
93586 for (j = 0; j < i; j++) {
93587 x = ((
unsigned char *) ptr)[j];
93588 if (x != (
unsigned char) (0x80 + j)) {
93589 DUK_D(
DUK_DPRINT(
"byte at index %ld doesn't match after realloc: %02lx",
93591 (
unsigned long) x));
93592 DUK__FAILED(
"byte compare after realloc");
93596 free_func(udata, ptr);
93599 return error_count;
93614 error_count += duk__selftest_types();
93615 error_count += duk__selftest_packed_tval();
93616 error_count += duk__selftest_twos_complement();
93617 error_count += duk__selftest_byte_order();
93618 error_count += duk__selftest_bswap_macros();
93619 error_count += duk__selftest_double_union_size();
93620 error_count += duk__selftest_double_aliasing();
93621 error_count += duk__selftest_double_zero_sign();
93622 error_count += duk__selftest_double_rounding();
93623 error_count += duk__selftest_fmod();
93624 error_count += duk__selftest_struct_align();
93625 error_count += duk__selftest_64bit_arithmetic();
93626 error_count += duk__selftest_cast_double_to_small_uint();
93627 error_count += duk__selftest_cast_double_to_uint32();
93628 error_count += duk__selftest_alloc_funcs(alloc_func, realloc_func, free_func, udata);
93630 DUK_D(
DUK_DPRINT(
"self test complete, total error count: %ld", (
long) error_count));
93632 return error_count;
93638#undef DUK__DBLUNION_CMP_FALSE
93639#undef DUK__DBLUNION_CMP_TRUE
93640#undef DUK__DOUBLE_COMPARE
93641#undef DUK__DOUBLE_INIT
93643#undef DUK__U32_INIT
93646#if defined(DUK_USE_FASTINT)
93674 i = (duk_int64_t) DUK_DBLUNION_GET_INT64(&du);
93676 shift = expt - 1023;
93678 if (shift >= 0 && shift <= 46) {
93684 t = t >> (52 - shift);
93691 }
else if (shift == -1023) {
93697 }
else if (shift == 47) {
93716#if defined(DUK_USE_FASTINT) && defined(DUK_USE_PACKED_TVAL)
93721 t = (duk_uint64_t) DUK_DBLUNION_GET_UINT64(tv);
93725 t = (duk_uint64_t) (-((duk_int64_t) t));
93728 DUK_DBLUNION_SET_UINT64(&du, t);
93729 return du.
d + 4503599627370496.0;
93730 }
else if (t != 0) {
93733 DUK_DBLUNION_SET_UINT64(&du, t);
93734 return du.
d - 4503599627370496.0;
93742#if defined(DUK_USE_FASTINT) && !defined(DUK_USE_PACKED_TVAL)
93750 if (tv->
v.
fi >= 0) {
93752 DUK_DBLUNION_SET_UINT64(&du, t);
93753 return du.
d - 4503599627370496.0;
93756 DUK_DBLUNION_SET_UINT64(&du, t);
93757 return du.
d + 4503599627370496.0;
93766#if defined(DUK_USE_FASTINT) && !defined(DUK_USE_PACKED_TVAL)
93773 if (tv->
v.
fi >= 0) {
93775 DUK_DBLUNION_SET_UINT64(&du, t);
93776 return du.
d - 4503599627370496.0;
93779 DUK_DBLUNION_SET_UINT64(&du, t);
93780 return du.
d + 4503599627370496.0;
93791#if defined(DUK_USE_ASSERTIONS)
93814#if defined(DUK_USE_SOURCE_NONBMP)
93822249,176,176,80,111,7,47,15,47,254,11,197,191,0,72,2,15,115,66,19,50,7,2,34,
938232,240,66,244,50,247,185,249,98,241,99,7,241,159,57,240,181,63,31,241,191,
9382421,18,245,50,15,1,24,27,35,15,2,2,240,239,15,244,156,15,10,241,26,21,6,240,
93825101,10,4,15,9,240,152,175,39,240,82,127,56,242,100,15,4,8,159,1,240,5,115,
9382619,240,98,98,4,52,15,2,14,18,47,0,27,9,85,19,240,98,98,18,18,31,17,50,15,5,
9382747,2,130,34,240,98,98,18,68,15,4,15,1,31,9,12,115,19,240,98,98,18,68,15,16,
9382818,47,1,15,3,2,84,34,52,18,2,20,20,36,191,8,15,38,114,34,240,114,240,4,15,
9382912,38,31,16,5,114,34,240,114,146,68,15,18,2,31,1,31,4,114,34,241,147,15,2,
938306,41,47,10,86,240,36,240,130,130,3,111,44,242,2,29,111,44,18,2,66,240,130,
938312,146,26,3,66,15,7,63,18,15,49,114,241,79,13,79,101,241,191,6,15,2,85,52,4,
9383224,37,205,15,3,241,98,6,3,241,178,255,224,63,35,54,32,35,63,25,35,63,17,35,
9383354,32,35,62,47,41,35,63,51,241,127,0,240,47,70,53,79,254,21,227,240,18,240,
93834166,243,180,168,194,63,0,240,47,0,240,47,0,194,47,1,242,79,21,5,15,53,244,
93835152,67,241,34,6,243,107,240,255,35,240,227,76,241,197,240,175,40,240,122,
93836242,95,68,15,79,241,255,3,111,41,240,238,27,241,207,12,241,79,27,43,241,67,
93837136,241,179,47,27,50,82,20,6,251,15,50,255,224,8,53,63,22,53,55,32,32,32,
9383847,15,63,37,38,32,66,38,67,53,92,98,38,246,96,224,240,44,245,112,80,57,32,
9383968,112,32,32,35,42,51,100,80,240,63,25,255,233,107,241,242,241,242,247,87,
9384052,29,241,98,6,3,242,136,15,2,240,122,98,98,98,98,98,98,98,111,66,15,254,
9384112,146,240,184,132,52,95,70,114,47,74,35,111,27,47,78,240,63,11,242,127,0,
93842255,224,244,255,240,0,138,143,60,255,240,4,14,47,2,255,227,127,243,95,30,
9384363,253,79,0,177,240,111,31,240,47,15,63,64,241,152,63,87,63,37,52,242,42,
9384434,35,47,7,240,255,36,240,15,34,243,5,64,33,207,12,191,7,240,191,13,143,31,
93845240,224,240,36,41,180,47,25,240,146,39,240,111,7,64,79,34,32,65,52,48,32,
93846240,162,58,130,213,53,53,166,38,47,27,43,159,99,240,255,255,0,26,150,223,7,
9384795,33,255,240,0,255,143,254,6,3,245,175,24,109,70,2,146,194,66,2,18,18,245,
93848207,19,255,224,93,240,79,48,63,38,241,171,246,100,47,119,241,111,10,127,10,
93849207,73,69,53,53,50,241,91,47,10,47,3,33,46,61,241,79,107,243,127,37,255,
93850223,13,79,33,242,31,16,239,14,111,22,191,14,63,20,87,36,241,207,142,240,79,
9385120,95,20,95,24,159,36,248,239,254,2,154,240,107,127,138,83,2,241,194,20,3,
93852240,123,240,122,240,255,51,240,50,27,240,107,240,175,56,242,135,31,50,15,1,
9385350,34,240,223,28,240,212,240,223,21,114,240,207,13,242,107,240,107,240,62,
93854240,47,96,243,159,41,242,62,242,62,241,79,254,13,15,13,176,159,6,248,207,7,
93855223,37,243,223,29,241,47,9,240,207,20,240,240,207,19,64,223,32,240,3,240,
93856112,32,241,95,2,47,9,244,102,32,35,46,41,143,31,241,135,49,63,6,38,33,36,
9385764,240,64,212,249,15,37,240,67,240,96,241,47,32,240,97,32,250,175,31,241,
93858179,241,111,32,240,96,242,223,27,224,243,159,11,253,127,28,246,111,48,241,
9385916,249,39,63,23,240,32,32,240,224,191,24,128,240,112,207,30,240,80,241,79,
9386041,255,152,47,21,240,48,242,63,14,246,38,33,47,22,240,112,240,181,33,47,16,
93861240,0,255,224,59,240,63,254,0,31,254,40,207,88,245,255,3,251,79,254,155,15,
93862254,50,31,254,236,95,254,19,159,255,0,16,173,255,225,43,143,15,246,63,14,
93863240,79,32,240,35,241,31,5,111,3,255,225,164,243,15,114,243,182,15,52,207,
9386450,18,15,14,255,240,0,110,169,255,225,229,255,240,1,64,31,254,1,31,35,47,3,
9386557,255,224,126,255,231,248,245,182,196,136,159,255,0,6,90,244,82,243,114,
9386619,3,19,50,178,2,98,243,18,51,114,98,240,194,50,66,4,98,255,224,70,63,9,47,
938679,47,15,47,9,47,15,47,9,47,15,47,9,47,15,47,9,39,255,232,40,241,219,111,2,
9386815,254,6,95,28,255,228,8,251,95,45,243,72,15,254,58,131,47,11,33,32,48,41,
9386935,32,32,112,80,32,32,34,33,32,48,32,32,32,32,33,32,51,38,35,35,32,41,47,1,
9387098,36,47,1,255,240,0,3,143,255,0,149,201,241,191,254,242,124,252,227,255,
93871240,0,87,79,0,255,240,0,194,63,254,177,63,254,17,0,
93880const duk_uint8_t duk_unicode_ids_noabmp[625] = {
93881249,176,176,80,111,7,47,15,47,254,11,197,191,0,72,2,15,115,66,19,50,7,2,34,
938822,240,66,244,50,247,185,249,98,241,99,7,241,159,57,240,181,63,31,241,191,
9388321,18,245,50,15,1,24,27,35,15,2,2,240,239,15,244,156,15,10,241,26,21,6,240,
93884101,10,4,15,9,240,152,175,39,240,82,127,56,242,100,15,4,8,159,1,240,5,115,
9388519,240,98,98,4,52,15,2,14,18,47,0,27,9,85,19,240,98,98,18,18,31,17,50,15,5,
9388647,2,130,34,240,98,98,18,68,15,4,15,1,31,9,12,115,19,240,98,98,18,68,15,16,
9388718,47,1,15,3,2,84,34,52,18,2,20,20,36,191,8,15,38,114,34,240,114,240,4,15,
9388812,38,31,16,5,114,34,240,114,146,68,15,18,2,31,1,31,4,114,34,241,147,15,2,
938896,41,47,10,86,240,36,240,130,130,3,111,44,242,2,29,111,44,18,2,66,240,130,
938902,146,26,3,66,15,7,63,18,15,49,114,241,79,13,79,101,241,191,6,15,2,85,52,4,
9389124,37,205,15,3,241,98,6,3,241,178,255,224,63,35,54,32,35,63,25,35,63,17,35,
9389254,32,35,62,47,41,35,63,51,241,127,0,240,47,70,53,79,254,21,227,240,18,240,
93893166,243,180,168,194,63,0,240,47,0,240,47,0,194,47,1,242,79,21,5,15,53,244,
93894152,67,241,34,6,243,107,240,255,35,240,227,76,241,197,240,175,40,240,122,
93895242,95,68,15,79,241,255,3,111,41,240,238,27,241,207,12,241,79,27,43,241,67,
93896136,241,179,47,27,50,82,20,6,251,15,50,255,224,8,53,63,22,53,55,32,32,32,
9389747,15,63,37,38,32,66,38,67,53,92,98,38,246,96,224,240,44,245,112,80,57,32,
9389868,112,32,32,35,42,51,100,80,240,63,25,255,233,107,241,242,241,242,247,87,
9389952,29,241,98,6,3,242,136,15,2,240,122,98,98,98,98,98,98,98,111,66,15,254,
9390012,146,240,184,132,52,95,70,114,47,74,35,111,27,47,78,240,63,11,242,127,0,
93901255,224,244,255,240,0,138,143,60,255,240,4,14,47,2,255,227,127,243,95,30,
9390263,253,79,0,177,240,111,31,240,47,15,63,64,241,152,63,87,63,37,52,242,42,
9390334,35,47,7,240,255,36,240,15,34,243,5,64,33,207,12,191,7,240,191,13,143,31,
93904240,224,240,36,41,180,47,25,240,146,39,240,111,7,64,79,34,32,65,52,48,32,
93905240,162,58,130,213,53,53,166,38,47,27,43,159,99,240,255,255,0,26,150,223,7,
9390695,33,255,240,0,255,143,254,6,3,245,175,24,109,70,2,146,194,66,2,18,18,245,
93907207,19,255,224,93,240,79,48,63,38,241,171,246,100,47,119,241,111,10,127,10,
93908207,73,69,53,53,50,0,
93912#if defined(DUK_USE_SOURCE_NONBMP)
93920255,240,0,94,18,255,233,99,241,51,63,254,215,32,240,184,240,2,255,240,6,89,
93921249,255,240,4,148,79,37,255,224,192,9,15,120,79,255,0,15,30,245,240,
93930const duk_uint8_t duk_unicode_ids_m_let_noabmp[24] = {
93931255,240,0,94,18,255,233,99,241,51,63,254,215,32,240,184,240,2,255,240,6,89,
93936#if defined(DUK_USE_SOURCE_NONBMP)
93944255,225,243,246,15,254,0,116,255,191,29,32,33,33,32,243,170,242,47,15,112,
93945245,118,53,49,35,57,240,144,241,15,11,244,218,240,25,241,56,160,240,163,40,
9394634,36,241,210,246,158,47,17,242,130,47,2,38,177,57,240,50,242,160,38,49,50,
93947160,177,57,240,0,50,242,160,36,81,50,64,240,107,64,194,242,160,39,34,34,
93948240,97,57,181,34,242,160,38,49,50,145,177,57,240,64,242,212,66,35,160,240,
939499,240,36,242,182,34,35,129,193,57,240,50,242,160,38,34,35,129,193,57,240,
9395035,242,145,38,34,35,160,177,57,240,65,243,128,85,32,39,121,49,242,240,54,
93951215,41,244,144,56,197,57,243,1,121,192,32,32,81,242,63,4,33,106,47,20,160,
93952245,111,4,41,211,82,34,54,67,235,46,255,225,179,47,254,42,98,240,242,240,
93953241,241,1,243,47,16,160,57,241,50,57,245,209,241,64,246,139,91,185,247,41,
93954242,244,242,185,47,13,58,121,240,141,243,68,242,31,1,201,240,56,210,241,12,
9395557,241,237,242,47,4,153,121,246,130,47,5,80,112,50,251,143,42,36,255,225,0,
9395631,35,31,5,15,109,197,4,191,254,175,34,247,240,245,47,16,255,225,30,95,91,
9395731,255,0,100,121,159,55,5,159,18,31,66,31,254,0,64,64,80,240,148,244,161,
93958242,79,2,185,127,2,234,240,231,240,188,241,227,242,29,240,25,192,185,242,
9395929,208,145,57,241,50,242,64,34,49,97,32,241,180,97,253,231,33,57,255,240,3,
93960225,128,255,225,213,240,15,2,240,4,31,10,47,178,159,23,15,254,27,16,253,64,
93961248,116,255,224,25,159,254,68,178,33,99,241,162,80,249,113,255,225,49,57,
93962159,254,16,10,250,18,242,126,241,25,240,19,241,250,242,121,114,241,109,41,
9396397,241,224,210,242,45,147,73,244,75,112,249,43,105,115,242,145,38,49,50,
93964160,177,54,68,251,47,2,169,80,244,63,4,217,252,118,56,240,209,244,79,1,240,
9396525,244,60,153,244,94,89,254,78,249,121,253,150,54,64,240,233,241,166,35,
93966144,170,242,15,0,255,224,137,114,127,2,159,42,240,98,223,108,84,2,18,98,9,
93967159,34,66,18,73,159,254,3,211,255,240,3,165,217,247,132,242,214,240,185,
93968255,226,233,2,242,120,63,255,0,59,254,31,255,0,3,186,68,89,115,111,16,63,
93969134,47,254,71,223,34,255,224,244,242,117,242,41,15,0,15,8,66,239,254,68,70,
9397047,1,54,33,36,255,118,169,255,224,150,223,254,76,166,245,246,105,255,240,
93980const duk_uint8_t duk_unicode_idp_m_ids_noabmp[358] = {
93981255,225,243,246,15,254,0,116,255,191,29,32,33,33,32,243,170,242,47,15,112,
93982245,118,53,49,35,57,240,144,241,15,11,244,218,240,25,241,56,160,240,163,40,
9398334,36,241,210,246,158,47,17,242,130,47,2,38,177,57,240,50,242,160,38,49,50,
93984160,177,57,240,0,50,242,160,36,81,50,64,240,107,64,194,242,160,39,34,34,
93985240,97,57,181,34,242,160,38,49,50,145,177,57,240,64,242,212,66,35,160,240,
939869,240,36,242,182,34,35,129,193,57,240,50,242,160,38,34,35,129,193,57,240,
9398735,242,145,38,34,35,160,177,57,240,65,243,128,85,32,39,121,49,242,240,54,
93988215,41,244,144,56,197,57,243,1,121,192,32,32,81,242,63,4,33,106,47,20,160,
93989245,111,4,41,211,82,34,54,67,235,46,255,225,179,47,254,42,98,240,242,240,
93990241,241,1,243,47,16,160,57,241,50,57,245,209,241,64,246,139,91,185,247,41,
93991242,244,242,185,47,13,58,121,240,141,243,68,242,31,1,201,240,56,210,241,12,
9399257,241,237,242,47,4,153,121,246,130,47,5,80,112,50,251,143,42,36,255,225,0,
9399331,35,31,5,15,109,197,4,191,254,175,34,247,240,245,47,16,255,225,30,95,91,
9399431,255,0,100,121,159,55,5,159,18,31,66,31,254,0,64,64,80,240,148,244,161,
93995242,79,2,185,127,2,234,240,231,240,188,241,227,242,29,240,25,192,185,242,
9399629,208,145,57,241,50,242,64,34,49,97,32,241,180,97,253,231,33,57,255,240,3,
93997225,128,255,225,213,240,15,2,240,4,31,10,47,178,159,23,0,
94013152,3,128,3,0,184,7,192,6,192,112,35,242,199,224,64,74,192,49,32,128,162,
94014128,108,65,1,189,129,254,131,3,173,3,136,6,7,98,7,34,68,15,12,14,140,72,30,
94015104,28,112,32,67,0,65,4,0,138,0,128,4,1,88,65,76,83,8,104,14,72,43,16,253,
9401628,189,6,39,240,39,224,24,114,12,16,132,16,248,0,248,64,129,241,1,241,128,
94017195,228,3,229,2,7,204,7,206,4,15,160,15,164,6,31,96,31,104,16,62,224,63,
94018116,8,125,200,127,32,32,251,176,254,208,33,247,129,255,128,67,239,67,253,
9401964,135,223,7,254,129,15,216,15,220,2,31,208,31,216,4,63,192,63,208,8,133,
94020192,133,128,129,38,129,37,177,162,195,2,192,5,229,160,2,20,9,170,220,4,232,
9402140,127,160,255,144,154,136,4,4,4,0,192,9,152,9,144,48,19,160,19,145,0,41,
9402296,41,69,192,94,128,94,65,128,193,128,193,2,1,161,1,160,6,3,104,3,102,8,7,
9402356,7,52,64,14,248,14,240,144,31,144,31,130,128,68,96,68,66,64,145,192,145,
94024130,129,184,129,184,2,3,217,3,216,24,8,194,8,192,68,18,44,18,40,216,38,16,
9402538,8,112,77,16,77,6,3,192,35,192,18,199,168,71,168,24,15,168,143,172,132,
9402644,104,44,103,6,89,2,89,0,200,179,176,179,172,21,50,13,50,1,122,104,26,104,
940271,212,228,116,228,65,233,204,233,204,143,211,189,83,188,130,167,127,167,
94028126,11,79,35,79,32,10,158,94,158,88,85,61,173,61,160,97,192,107,64,107,1,0,
94029226,128,226,3,1,198,1,196,6,3,228,3,226,8,10,0,6,152,16,31,192,31,184,34,
94030199,50,199,32,65,128,196,0,195,130,1,185,1,184,4,4,205,79,84,8,0,192,143,0,
94031142,193,1,52,128,203,2,45,39,16,199,5,253,0,11,80,57,192,15,240,23,128,19,
9403216,4,144,23,240,5,48,24,0,36,48,25,32,25,16,25,80,31,96,25,144,25,128,25,
94033160,35,208,25,224,34,0,26,128,26,112,27,240,31,112,29,208,24,224,31,48,31,
9403416,37,2,198,240,37,18,198,208,37,34,199,0,37,48,24,16,37,64,24,96,37,144,
9403524,240,37,176,25,0,37,202,122,176,38,0,25,48,38,26,122,192,38,48,25,64,38,
9403690,120,208,38,128,25,112,38,178,198,32,38,202,122,208,39,18,198,224,39,32,
9403725,208,39,80,25,240,39,210,198,64,40,42,124,80,40,122,123,16,40,128,26,224,
9403840,144,36,64,40,192,36,80,41,32,27,112,41,218,123,32,41,234,123,0,52,80,57,
94039144,55,112,55,96,58,192,56,96,60,32,58,48,60,192,56,192,61,0,57,32,61,16,
9404057,128,61,80,58,96,61,96,58,0,61,112,60,240,63,0,57,160,63,16,58,16,63,32,
9404163,144,63,48,55,240,63,80,57,80,76,240,76,1,200,0,65,33,200,16,65,65,200,
9404232,65,225,200,80,66,33,200,96,66,161,200,112,70,33,200,138,100,161,215,154,
94043119,209,215,210,198,49,216,234,124,97,233,177,230,1,251,224,57,145,254,81,
94044254,194,20,226,19,34,24,66,24,50,198,18,198,2,198,80,35,162,198,96,35,226,
94045207,50,207,42,120,202,120,186,121,74,124,74,124,58,124,42,181,58,123,60,
94046192,27,240,2,152,2,152,10,76,5,120,0,156,3,225,0,37,1,134,1,200,96,115,32,
9404797,0,96,32,118,24,29,40,24,64,24,8,44,60,10,106,10,164,61,45,0,36,1,152,
94048143,75,192,10,128,97,3,211,16,2,184,24,80,244,204,0,178,6,20,61,53,0,32,
94049129,95,15,168,64,116,160,98,99,234,88,29,40,24,152,24,0,250,166,7,74,6,38,
940506,2,62,173,129,210,129,137,129,161,15,192,67,225,0,115,35,240,48,248,72,28,
94051200,252,20,62,20,7,50,63,7,15,133,129,204,143,194,67,225,128,115,35,240,
94052176,248,104,28,200,252,52,62,28,7,50,63,15,15,135,129,204,143,196,67,225,0,
94053115,35,241,48,248,72,28,200,252,84,62,20,7,50,63,23,15,133,129,204,143,198,
9405467,225,128,115,35,241,176,248,104,28,200,252,116,62,28,7,50,63,31,15,135,
94055129,204,143,200,67,229,0,115,35,242,48,249,72,28,200,252,148,62,84,7,50,63,
9405639,15,149,129,204,143,202,67,229,128,115,35,242,176,249,104,28,200,252,180,
9405762,92,7,50,63,47,15,151,129,204,143,204,67,229,0,115,35,243,48,249,72,28,
94058200,252,212,62,84,7,50,63,55,15,149,129,204,143,206,67,229,128,115,35,243,
94059176,249,104,28,200,252,244,62,92,7,50,63,63,15,151,129,204,143,208,67,237,
940600,115,35,244,48,251,72,28,200,253,20,62,212,7,50,63,71,15,181,129,204,143,
94061210,67,237,128,115,35,244,176,251,104,28,200,253,52,62,220,7,50,63,79,15,
94062183,129,204,143,212,67,237,0,115,35,245,48,251,72,28,200,253,84,62,212,7,
9406350,63,87,15,181,129,204,143,214,67,237,128,115,35,245,176,251,104,28,200,
94064253,116,62,220,7,50,63,95,15,183,129,204,143,217,67,247,64,115,35,246,112,
9406528,136,28,200,253,164,7,12,7,50,63,109,1,200,129,161,15,219,224,114,32,104,
9406664,115,35,247,144,28,136,28,200,254,20,63,148,7,50,63,135,1,203,129,204,
94067143,226,64,113,32,115,35,248,208,28,184,26,16,254,62,7,46,6,132,7,50,63,
94068153,1,203,129,204,143,233,96,115,32,97,0,96,3,250,120,28,200,24,64,24,8,
94069254,180,7,50,6,132,63,175,129,204,129,132,1,161,15,241,96,116,160,97,0,96,
940703,252,120,29,40,24,64,24,8,255,36,7,66,6,38,63,205,1,210,129,161,15,243,
94071224,116,160,97,0,104,67,254,80,255,208,28,200,255,156,7,82,7,50,63,233,1,
94072199,129,204,143,251,64,117,32,104,67,254,248,29,72,26,16,28,200,255,228,7,
9407382,7,51,246,1,0,35,0,35,125,128,192,8,192,9,63,96,80,2,48,2,103,216,30,0,
94074140,0,140,0,147,246,9,128,35,0,35,0,38,125,130,192,10,96,10,159,96,208,2,
94075152,2,167,216,156,10,136,10,141,246,41,2,162,2,154,253,138,192,168,128,167,
94076127,98,208,42,112,42,55,216,188,10,136,10,122,
94079160,3,0,3,128,184,6,192,7,192,112,24,144,37,96,64,54,32,81,64,128,226,0,
94080235,65,129,199,1,230,130,3,145,3,177,34,7,70,7,134,36,15,244,13,236,24,32,
940810,34,129,0,65,0,67,4,0,166,32,172,41,132,40,11,64,19,9,208,85,184,80,19,
94082240,19,248,12,57,32,33,160,172,114,244,67,244,24,248,64,248,0,129,241,129,
94083241,0,195,229,3,228,2,7,206,7,204,4,15,164,15,160,6,31,104,31,96,16,63,16,
9408463,0,32,126,96,126,64,64,253,64,253,0,129,251,129,251,0,67,247,67,238,0,
94085135,242,7,220,130,15,236,15,232,2,31,218,31,118,4,63,208,63,192,8,127,168,
94086125,232,16,255,192,251,192,33,255,161,247,192,68,44,4,46,4,9,45,137,52,13,
9408722,0,22,24,47,44,126,2,63,5,254,67,254,130,106,48,16,0,16,19,0,38,64,38,96,
94088192,78,64,78,132,0,165,0,165,151,1,121,1,122,6,3,4,3,6,8,6,128,6,132,24,13,
94089152,13,160,32,28,176,28,193,32,59,192,59,226,64,124,128,124,193,0,252,0,
94090252,148,2,34,2,35,18,4,140,4,142,20,13,192,13,196,16,30,192,30,200,192,70,
940910,70,18,32,145,64,145,102,193,48,65,48,131,130,104,2,104,176,30,0,30,1,150,
9409261,64,61,66,192,125,100,125,68,33,99,57,99,64,50,200,2,200,22,69,157,101,
94093157,128,169,144,41,144,75,211,64,83,64,142,167,34,167,35,15,78,101,78,102,
94094126,157,230,157,232,21,59,245,59,248,90,121,10,121,16,84,242,212,242,226,
94095169,237,41,237,67,12,3,76,5,0,8,6,176,6,180,16,14,32,14,48,48,28,80,28,96,
9409664,126,224,127,0,139,28,139,28,193,6,3,14,3,16,8,6,224,6,228,21,61,80,19,
9409748,32,3,1,150,2,105,4,4,118,4,120,8,67,28,180,156,23,240,192,94,0,63,192,
9409896,64,148,192,97,128,149,0,99,128,119,64,99,192,150,64,100,0,150,192,100,
9409964,100,128,100,192,152,0,101,0,152,192,101,192,154,0,102,0,102,64,103,64,
94100156,128,103,192,157,64,105,192,106,0,107,128,162,0,109,192,164,128,124,64,
94101124,192,125,128,101,64,125,192,111,192,136,0,103,128,142,139,25,64,143,64,
94102102,128,143,139,25,128,144,192,96,0,145,0,162,64,145,64,163,0,221,128,221,
94103192,223,192,252,192,225,128,235,0,227,0,243,0,243,192,245,192,253,0,238,0,
94104254,64,252,129,48,1,51,199,167,128,55,199,239,7,236,199,243,7,240,199,251,
941057,249,71,255,7,252,200,73,128,242,72,74,128,26,200,74,192,57,72,76,136,83,
94106136,96,200,97,11,24,11,24,75,24,128,154,203,24,199,95,75,25,0,159,75,27,64,
94107148,75,27,128,156,75,27,192,148,11,28,0,148,139,60,139,60,233,223,71,94,
94108105,226,233,227,41,227,64,153,105,234,192,151,41,235,0,152,105,235,64,155,
9410941,236,0,167,169,236,64,161,233,236,128,167,105,236,234,212,233,240,169,
94110240,233,241,41,229,41,241,64,160,169,241,135,99,128,128,152,64,13,32,96,
94114#if defined(DUK_USE_REGEXP_CANON_WORKAROUND)
941200,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,
9412128,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,
9412253,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,
9412378,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,
9412471,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,
94125126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
94126144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,
94127162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,
94128180,924,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,
94129198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,
94130216,217,218,219,220,221,222,223,192,193,194,195,196,197,198,199,200,201,
94131202,203,204,205,206,207,208,209,210,211,212,213,214,247,216,217,218,219,
94132220,221,222,376,256,256,258,258,260,260,262,262,264,264,266,266,268,268,
94133270,270,272,272,274,274,276,276,278,278,280,280,282,282,284,284,286,286,
94134288,288,290,290,292,292,294,294,296,296,298,298,300,300,302,302,304,305,
94135306,306,308,308,310,310,312,313,313,315,315,317,317,319,319,321,321,323,
94136323,325,325,327,327,329,330,330,332,332,334,334,336,336,338,338,340,340,
94137342,342,344,344,346,346,348,348,350,350,352,352,354,354,356,356,358,358,
94138360,360,362,362,364,364,366,366,368,368,370,370,372,372,374,374,376,377,
94139377,379,379,381,381,383,579,385,386,386,388,388,390,391,391,393,394,395,
94140395,397,398,399,400,401,401,403,404,502,406,407,408,408,573,411,412,413,
94141544,415,416,416,418,418,420,420,422,423,423,425,426,427,428,428,430,431,
94142431,433,434,435,435,437,437,439,440,440,442,443,444,444,446,503,448,449,
94143450,451,452,452,452,455,455,455,458,458,458,461,461,463,463,465,465,467,
94144467,469,469,471,471,473,473,475,475,398,478,478,480,480,482,482,484,484,
94145486,486,488,488,490,490,492,492,494,494,496,497,497,497,500,500,502,503,
94146504,504,506,506,508,508,510,510,512,512,514,514,516,516,518,518,520,520,
94147522,522,524,524,526,526,528,528,530,530,532,532,534,534,536,536,538,538,
94148540,540,542,542,544,545,546,546,548,548,550,550,552,552,554,554,556,556,
94149558,558,560,560,562,562,564,565,566,567,568,569,570,571,571,573,574,11390,
9415011391,577,577,579,580,581,582,582,584,584,586,586,588,588,590,590,11375,
9415111373,11376,385,390,597,393,394,600,399,602,400,42923L,605,606,607,403,
9415242924L,610,404,612,42893L,42922L,615,407,406,42926L,11362,42925L,621,622,
94153412,624,11374,413,627,628,415,630,631,632,633,634,635,636,11364,638,639,
94154422,641,42949L,425,644,645,646,42929L,430,580,433,434,581,653,654,655,656,
94155657,439,659,660,661,662,663,664,665,666,667,668,42930L,42928L,671,672,673,
94156674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,
94157692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,
94158710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,
94159728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,
94160746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,
94161764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,
94162782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,
94163800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,
94164818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,
94165836,921,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,
94166854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,
94167872,873,874,875,876,877,878,879,880,880,882,882,884,885,886,886,888,889,
94168890,1021,1022,1023,894,895,896,897,898,899,900,901,902,903,904,905,906,907,
94169908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,
94170926,927,928,929,930,931,932,933,934,935,936,937,938,939,902,904,905,906,
94171944,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,
94172931,931,932,933,934,935,936,937,938,939,908,910,911,975,914,920,978,979,
94173980,934,928,975,984,984,986,986,988,988,990,990,992,992,994,994,996,996,
94174998,998,1000,1000,1002,1002,1004,1004,1006,1006,922,929,1017,895,1012,917,
941751014,1015,1015,1017,1018,1018,1020,1021,1022,1023,1024,1025,1026,1027,1028,
941761029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,
941771044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,
941781059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1040,1041,
941791042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,
941801057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,
941811024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,
941821039,1120,1120,1122,1122,1124,1124,1126,1126,1128,1128,1130,1130,1132,1132,
941831134,1134,1136,1136,1138,1138,1140,1140,1142,1142,1144,1144,1146,1146,1148,
941841148,1150,1150,1152,1152,1154,1155,1156,1157,1158,1159,1160,1161,1162,1162,
941851164,1164,1166,1166,1168,1168,1170,1170,1172,1172,1174,1174,1176,1176,1178,
941861178,1180,1180,1182,1182,1184,1184,1186,1186,1188,1188,1190,1190,1192,1192,
941871194,1194,1196,1196,1198,1198,1200,1200,1202,1202,1204,1204,1206,1206,1208,
941881208,1210,1210,1212,1212,1214,1214,1216,1217,1217,1219,1219,1221,1221,1223,
941891223,1225,1225,1227,1227,1229,1229,1216,1232,1232,1234,1234,1236,1236,1238,
941901238,1240,1240,1242,1242,1244,1244,1246,1246,1248,1248,1250,1250,1252,1252,
941911254,1254,1256,1256,1258,1258,1260,1260,1262,1262,1264,1264,1266,1266,1268,
941921268,1270,1270,1272,1272,1274,1274,1276,1276,1278,1278,1280,1280,1282,1282,
941931284,1284,1286,1286,1288,1288,1290,1290,1292,1292,1294,1294,1296,1296,1298,
941941298,1300,1300,1302,1302,1304,1304,1306,1306,1308,1308,1310,1310,1312,1312,
941951314,1314,1316,1316,1318,1318,1320,1320,1322,1322,1324,1324,1326,1326,1328,
941961329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,
941971344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,
941981359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,
941991374,1375,1376,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,
942001341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,
942011356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1415,1416,1417,1418,
942021419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,
942031434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,
942041449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,
942051464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,
942061479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,
942071494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,
942081509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,
942091524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,
942101539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,
942111554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,
942121569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,
942131584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,
942141599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,
942151614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,
942161629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,
942171644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,
942181659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,
942191674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,
942201689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,
942211704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,
942221719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,
942231734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,
942241749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,
942251764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,
942261779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,
942271794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,
942281809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,
942291824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,
942301839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,
942311854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,
942321869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,
942331884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,
942341899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,
942351914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,
942361929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,
942371944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,
942381959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,
942391974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,
942401989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,
942412004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,
942422019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,
942432034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,
942442049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,
942452064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,
942462079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,
942472094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,
942482109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,
942492124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,
942502139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,
942512154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,
942522169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,
942532184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,
942542199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,
942552214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,
942562229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,
942572244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,
942582259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,
942592274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,
942602289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,
942612304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,
942622319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,
942632334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,
942642349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,
942652364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,
942662379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,
942672394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,
942682409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,
942692424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,
942702439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,
942712454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,
942722469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,
942732484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,
942742499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,
942752514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,
942762529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,
942772544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,
942782559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,
942792574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,
942802589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,
942812604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,
942822619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,
942832634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,
942842649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,
942852664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,
942862679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,
942872694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,
942882709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,
942892724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,
942902739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,2752,2753,
942912754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,
942922769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,
942932784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,
942942799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,
942952814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,
942962829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,
942972844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,
942982859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,
942992874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,
943002889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,
943012904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,
943022919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,
943032934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,
943042949,2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,
943052964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,
943062979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,
943072994,2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,
943083009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,
943093024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,
943103039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,
943113054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,
943123069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,
943133084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,
943143099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,
943153114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,
943163129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,
943173144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,
943183159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,
943193174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,
943203189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,
943213204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,
943223219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,
943233234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,
943243249,3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,
943253264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,
943263279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,
943273294,3295,3296,3297,3298,3299,3300,3301,3302,3303,3304,3305,3306,3307,3308,
943283309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,
943293324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,
943303339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,
943313354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,
943323369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,
943333384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,
943343399,3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,
943353414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,
943363429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,
943373444,3445,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,
943383459,3460,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,
943393474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,
943403489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,3500,3501,3502,3503,
943413504,3505,3506,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3518,
943423519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,
943433534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,
943443549,3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,
943453564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,
943463579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,
943473594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,
943483609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,
943493624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,
943503639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,
943513654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,
943523669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,
943533684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,3696,3697,3698,
943543699,3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,
943553714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,
943563729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3740,3741,3742,3743,
943573744,3745,3746,3747,3748,3749,3750,3751,3752,3753,3754,3755,3756,3757,3758,
943583759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,
943593774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,
943603789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,3800,3801,3802,3803,
943613804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815,3816,3817,3818,
943623819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3833,
943633834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,
943643849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,
943653864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,
943663879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,
943673894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,
943683909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,
943693924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,
943703939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,
943713954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,
943723969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,
943733984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,
943743999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,
943754014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,
943764029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,
943774044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,
943784059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,
943794074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,
943804089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,4101,4102,4103,
943814104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,
943824119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,
943834134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,
943844149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,
943854164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,
943864179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,
943874194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4208,
943884209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,
943894224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,
943904239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,4250,4251,4252,4253,
943914254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,
943924269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,
943934284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,
943944299,4300,4301,4302,4303,7312,7313,7314,7315,7316,7317,7318,7319,7320,7321,
943957322,7323,7324,7325,7326,7327,7328,7329,7330,7331,7332,7333,7334,7335,7336,
943967337,7338,7339,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7350,7351,
943977352,7353,7354,4347,4348,7357,7358,7359,4352,4353,4354,4355,4356,4357,4358,
943984359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,
943994374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,
944004389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,
944014404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,
944024419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,
944034434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,
944044449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,
944054464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,
944064479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,
944074494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,
944084509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,
944094524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,
944104539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,
944114554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,
944124569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,
944134584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,
944144599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,
944154614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,
944164629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,
944174644,4645,4646,4647,4648,4649,4650,4651,4652,4653,4654,4655,4656,4657,4658,
944184659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,
944194674,4675,4676,4677,4678,4679,4680,4681,4682,4683,4684,4685,4686,4687,4688,
944204689,4690,4691,4692,4693,4694,4695,4696,4697,4698,4699,4700,4701,4702,4703,
944214704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,
944224719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,
944234734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,
944244749,4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,
944254764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,
944264779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4789,4790,4791,4792,4793,
944274794,4795,4796,4797,4798,4799,4800,4801,4802,4803,4804,4805,4806,4807,4808,
944284809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,
944294824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,
944304839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,4850,4851,4852,4853,
944314854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,
944324869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,
944334884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,
944344899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,
944354914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,
944364929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,
944374944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,4955,4956,4957,4958,
944384959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,
944394974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,
944404989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999,5000,5001,5002,5003,
944415004,5005,5006,5007,5008,5009,5010,5011,5012,5013,5014,5015,5016,5017,5018,
944425019,5020,5021,5022,5023,5024,5025,5026,5027,5028,5029,5030,5031,5032,5033,
944435034,5035,5036,5037,5038,5039,5040,5041,5042,5043,5044,5045,5046,5047,5048,
944445049,5050,5051,5052,5053,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,
944455064,5065,5066,5067,5068,5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,
944465079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,
944475094,5095,5096,5097,5098,5099,5100,5101,5102,5103,5104,5105,5106,5107,5108,
944485109,5110,5111,5104,5105,5106,5107,5108,5109,5118,5119,5120,5121,5122,5123,
944495124,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5138,
944505139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149,5150,5151,5152,5153,
944515154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164,5165,5166,5167,5168,
944525169,5170,5171,5172,5173,5174,5175,5176,5177,5178,5179,5180,5181,5182,5183,
944535184,5185,5186,5187,5188,5189,5190,5191,5192,5193,5194,5195,5196,5197,5198,
944545199,5200,5201,5202,5203,5204,5205,5206,5207,5208,5209,5210,5211,5212,5213,
944555214,5215,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227,5228,
944565229,5230,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5242,5243,
944575244,5245,5246,5247,5248,5249,5250,5251,5252,5253,5254,5255,5256,5257,5258,
944585259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,
944595274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,
944605289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,5300,5301,5302,5303,
944615304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,
944625319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,
944635334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347,5348,
944645349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,
944655364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,
944665379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5389,5390,5391,5392,5393,
944675394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408,
944685409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,
944695424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,
944705439,5440,5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,
944715454,5455,5456,5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,
944725469,5470,5471,5472,5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,
944735484,5485,5486,5487,5488,5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,
944745499,5500,5501,5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,5512,5513,
944755514,5515,5516,5517,5518,5519,5520,5521,5522,5523,5524,5525,5526,5527,5528,
944765529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5542,5543,
944775544,5545,5546,5547,5548,5549,5550,5551,5552,5553,5554,5555,5556,5557,5558,
944785559,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,
944795574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,5586,5587,5588,
944805589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600,5601,5602,5603,
944815604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616,5617,5618,
944825619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632,5633,
944835634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648,
944845649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,
944855664,5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,
944865679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,
944875694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,
944885709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,
944895724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,
944905739,5740,5741,5742,5743,5744,5745,5746,5747,5748,5749,5750,5751,5752,5753,
944915754,5755,5756,5757,5758,5759,5760,5761,5762,5763,5764,5765,5766,5767,5768,
944925769,5770,5771,5772,5773,5774,5775,5776,5777,5778,5779,5780,5781,5782,5783,
944935784,5785,5786,5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5797,5798,
944945799,5800,5801,5802,5803,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,
944955814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828,
944965829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,
944975844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856,5857,5858,
944985859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872,5873,
944995874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888,
945005889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,
945015904,5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,
945025919,5920,5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,
945035934,5935,5936,5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,
945045949,5950,5951,5952,5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,
945055964,5965,5966,5967,5968,5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,
945065979,5980,5981,5982,5983,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,
945075994,5995,5996,5997,5998,5999,6000,6001,6002,6003,6004,6005,6006,6007,6008,
945086009,6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021,6022,6023,
945096024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038,
945106039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052,6053,
945116054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6068,
945126069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,
945136084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,
945146099,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,
945156114,6115,6116,6117,6118,6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,
945166129,6130,6131,6132,6133,6134,6135,6136,6137,6138,6139,6140,6141,6142,6143,
945176144,6145,6146,6147,6148,6149,6150,6151,6152,6153,6154,6155,6156,6157,6158,
945186159,6160,6161,6162,6163,6164,6165,6166,6167,6168,6169,6170,6171,6172,6173,
945196174,6175,6176,6177,6178,6179,6180,6181,6182,6183,6184,6185,6186,6187,6188,
945206189,6190,6191,6192,6193,6194,6195,6196,6197,6198,6199,6200,6201,6202,6203,
945216204,6205,6206,6207,6208,6209,6210,6211,6212,6213,6214,6215,6216,6217,6218,
945226219,6220,6221,6222,6223,6224,6225,6226,6227,6228,6229,6230,6231,6232,6233,
945236234,6235,6236,6237,6238,6239,6240,6241,6242,6243,6244,6245,6246,6247,6248,
945246249,6250,6251,6252,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6263,
945256264,6265,6266,6267,6268,6269,6270,6271,6272,6273,6274,6275,6276,6277,6278,
945266279,6280,6281,6282,6283,6284,6285,6286,6287,6288,6289,6290,6291,6292,6293,
945276294,6295,6296,6297,6298,6299,6300,6301,6302,6303,6304,6305,6306,6307,6308,
945286309,6310,6311,6312,6313,6314,6315,6316,6317,6318,6319,6320,6321,6322,6323,
945296324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,
945306339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349,6350,6351,6352,6353,
945316354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,6366,6367,6368,
945326369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381,6382,6383,
945336384,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397,6398,
945346399,6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,6412,6413,
945356414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,6426,6427,6428,
945366429,6430,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443,
945376444,6445,6446,6447,6448,6449,6450,6451,6452,6453,6454,6455,6456,6457,6458,
945386459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,
945396474,6475,6476,6477,6478,6479,6480,6481,6482,6483,6484,6485,6486,6487,6488,
945406489,6490,6491,6492,6493,6494,6495,6496,6497,6498,6499,6500,6501,6502,6503,
945416504,6505,6506,6507,6508,6509,6510,6511,6512,6513,6514,6515,6516,6517,6518,
945426519,6520,6521,6522,6523,6524,6525,6526,6527,6528,6529,6530,6531,6532,6533,
945436534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548,
945446549,6550,6551,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,
945456564,6565,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,
945466579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,
945476594,6595,6596,6597,6598,6599,6600,6601,6602,6603,6604,6605,6606,6607,6608,
945486609,6610,6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621,6622,6623,
945496624,6625,6626,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,
945506639,6640,6641,6642,6643,6644,6645,6646,6647,6648,6649,6650,6651,6652,6653,
945516654,6655,6656,6657,6658,6659,6660,6661,6662,6663,6664,6665,6666,6667,6668,
945526669,6670,6671,6672,6673,6674,6675,6676,6677,6678,6679,6680,6681,6682,6683,
945536684,6685,6686,6687,6688,6689,6690,6691,6692,6693,6694,6695,6696,6697,6698,
945546699,6700,6701,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6712,6713,
945556714,6715,6716,6717,6718,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,
945566729,6730,6731,6732,6733,6734,6735,6736,6737,6738,6739,6740,6741,6742,6743,
945576744,6745,6746,6747,6748,6749,6750,6751,6752,6753,6754,6755,6756,6757,6758,
945586759,6760,6761,6762,6763,6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,
945596774,6775,6776,6777,6778,6779,6780,6781,6782,6783,6784,6785,6786,6787,6788,
945606789,6790,6791,6792,6793,6794,6795,6796,6797,6798,6799,6800,6801,6802,6803,
945616804,6805,6806,6807,6808,6809,6810,6811,6812,6813,6814,6815,6816,6817,6818,
945626819,6820,6821,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,
945636834,6835,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,6847,6848,
945646849,6850,6851,6852,6853,6854,6855,6856,6857,6858,6859,6860,6861,6862,6863,
945656864,6865,6866,6867,6868,6869,6870,6871,6872,6873,6874,6875,6876,6877,6878,
945666879,6880,6881,6882,6883,6884,6885,6886,6887,6888,6889,6890,6891,6892,6893,
945676894,6895,6896,6897,6898,6899,6900,6901,6902,6903,6904,6905,6906,6907,6908,
945686909,6910,6911,6912,6913,6914,6915,6916,6917,6918,6919,6920,6921,6922,6923,
945696924,6925,6926,6927,6928,6929,6930,6931,6932,6933,6934,6935,6936,6937,6938,
945706939,6940,6941,6942,6943,6944,6945,6946,6947,6948,6949,6950,6951,6952,6953,
945716954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6964,6965,6966,6967,6968,
945726969,6970,6971,6972,6973,6974,6975,6976,6977,6978,6979,6980,6981,6982,6983,
945736984,6985,6986,6987,6988,6989,6990,6991,6992,6993,6994,6995,6996,6997,6998,
945746999,7000,7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013,
945757014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,
945767029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,7043,
945777044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,
945787059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,
945797074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7086,7087,7088,
945807089,7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,7100,7101,7102,7103,
945817104,7105,7106,7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,
945827119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,
945837134,7135,7136,7137,7138,7139,7140,7141,7142,7143,7144,7145,7146,7147,7148,
945847149,7150,7151,7152,7153,7154,7155,7156,7157,7158,7159,7160,7161,7162,7163,
945857164,7165,7166,7167,7168,7169,7170,7171,7172,7173,7174,7175,7176,7177,7178,
945867179,7180,7181,7182,7183,7184,7185,7186,7187,7188,7189,7190,7191,7192,7193,
945877194,7195,7196,7197,7198,7199,7200,7201,7202,7203,7204,7205,7206,7207,7208,
945887209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7219,7220,7221,7222,7223,
945897224,7225,7226,7227,7228,7229,7230,7231,7232,7233,7234,7235,7236,7237,7238,
945907239,7240,7241,7242,7243,7244,7245,7246,7247,7248,7249,7250,7251,7252,7253,
945917254,7255,7256,7257,7258,7259,7260,7261,7262,7263,7264,7265,7266,7267,7268,
945927269,7270,7271,7272,7273,7274,7275,7276,7277,7278,7279,7280,7281,7282,7283,
945937284,7285,7286,7287,7288,7289,7290,7291,7292,7293,7294,7295,1042,1044,1054,
945941057,1058,1058,1066,1122,42570L,7305,7306,7307,7308,7309,7310,7311,7312,
945957313,7314,7315,7316,7317,7318,7319,7320,7321,7322,7323,7324,7325,7326,7327,
945967328,7329,7330,7331,7332,7333,7334,7335,7336,7337,7338,7339,7340,7341,7342,
945977343,7344,7345,7346,7347,7348,7349,7350,7351,7352,7353,7354,7355,7356,7357,
945987358,7359,7360,7361,7362,7363,7364,7365,7366,7367,7368,7369,7370,7371,7372,
945997373,7374,7375,7376,7377,7378,7379,7380,7381,7382,7383,7384,7385,7386,7387,
946007388,7389,7390,7391,7392,7393,7394,7395,7396,7397,7398,7399,7400,7401,7402,
946017403,7404,7405,7406,7407,7408,7409,7410,7411,7412,7413,7414,7415,7416,7417,
946027418,7419,7420,7421,7422,7423,7424,7425,7426,7427,7428,7429,7430,7431,7432,
946037433,7434,7435,7436,7437,7438,7439,7440,7441,7442,7443,7444,7445,7446,7447,
946047448,7449,7450,7451,7452,7453,7454,7455,7456,7457,7458,7459,7460,7461,7462,
946057463,7464,7465,7466,7467,7468,7469,7470,7471,7472,7473,7474,7475,7476,7477,
946067478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7488,7489,7490,7491,7492,
946077493,7494,7495,7496,7497,7498,7499,7500,7501,7502,7503,7504,7505,7506,7507,
946087508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,7522,
946097523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,7536,7537,
946107538,7539,7540,7541,7542,7543,7544,42877L,7546,7547,7548,11363,7550,7551,
946117552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,
9461242950L,7567,7568,7569,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,
946137580,7581,7582,7583,7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,
946147595,7596,7597,7598,7599,7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,
946157610,7611,7612,7613,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,
946167625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7636,7637,7638,7639,
946177640,7641,7642,7643,7644,7645,7646,7647,7648,7649,7650,7651,7652,7653,7654,
946187655,7656,7657,7658,7659,7660,7661,7662,7663,7664,7665,7666,7667,7668,7669,
946197670,7671,7672,7673,7674,7675,7676,7677,7678,7679,7680,7680,7682,7682,7684,
946207684,7686,7686,7688,7688,7690,7690,7692,7692,7694,7694,7696,7696,7698,7698,
946217700,7700,7702,7702,7704,7704,7706,7706,7708,7708,7710,7710,7712,7712,7714,
946227714,7716,7716,7718,7718,7720,7720,7722,7722,7724,7724,7726,7726,7728,7728,
946237730,7730,7732,7732,7734,7734,7736,7736,7738,7738,7740,7740,7742,7742,7744,
946247744,7746,7746,7748,7748,7750,7750,7752,7752,7754,7754,7756,7756,7758,7758,
946257760,7760,7762,7762,7764,7764,7766,7766,7768,7768,7770,7770,7772,7772,7774,
946267774,7776,7776,7778,7778,7780,7780,7782,7782,7784,7784,7786,7786,7788,7788,
946277790,7790,7792,7792,7794,7794,7796,7796,7798,7798,7800,7800,7802,7802,7804,
946287804,7806,7806,7808,7808,7810,7810,7812,7812,7814,7814,7816,7816,7818,7818,
946297820,7820,7822,7822,7824,7824,7826,7826,7828,7828,7830,7831,7832,7833,7834,
946307776,7836,7837,7838,7839,7840,7840,7842,7842,7844,7844,7846,7846,7848,7848,
946317850,7850,7852,7852,7854,7854,7856,7856,7858,7858,7860,7860,7862,7862,7864,
946327864,7866,7866,7868,7868,7870,7870,7872,7872,7874,7874,7876,7876,7878,7878,
946337880,7880,7882,7882,7884,7884,7886,7886,7888,7888,7890,7890,7892,7892,7894,
946347894,7896,7896,7898,7898,7900,7900,7902,7902,7904,7904,7906,7906,7908,7908,
946357910,7910,7912,7912,7914,7914,7916,7916,7918,7918,7920,7920,7922,7922,7924,
946367924,7926,7926,7928,7928,7930,7930,7932,7932,7934,7934,7944,7945,7946,7947,
946377948,7949,7950,7951,7944,7945,7946,7947,7948,7949,7950,7951,7960,7961,7962,
946387963,7964,7965,7958,7959,7960,7961,7962,7963,7964,7965,7966,7967,7976,7977,
946397978,7979,7980,7981,7982,7983,7976,7977,7978,7979,7980,7981,7982,7983,7992,
946407993,7994,7995,7996,7997,7998,7999,7992,7993,7994,7995,7996,7997,7998,7999,
946418008,8009,8010,8011,8012,8013,8006,8007,8008,8009,8010,8011,8012,8013,8014,
946428015,8016,8025,8018,8027,8020,8029,8022,8031,8024,8025,8026,8027,8028,8029,
946438030,8031,8040,8041,8042,8043,8044,8045,8046,8047,8040,8041,8042,8043,8044,
946448045,8046,8047,8122,8123,8136,8137,8138,8139,8154,8155,8184,8185,8170,8171,
946458186,8187,8062,8063,8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,
946468075,8076,8077,8078,8079,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,
946478090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8102,8103,8104,
946488105,8106,8107,8108,8109,8110,8111,8120,8121,8114,8115,8116,8117,8118,8119,
946498120,8121,8122,8123,8124,8125,921,8127,8128,8129,8130,8131,8132,8133,8134,
946508135,8136,8137,8138,8139,8140,8141,8142,8143,8152,8153,8146,8147,8148,8149,
946518150,8151,8152,8153,8154,8155,8156,8157,8158,8159,8168,8169,8162,8163,8164,
946528172,8166,8167,8168,8169,8170,8171,8172,8173,8174,8175,8176,8177,8178,8179,
946538180,8181,8182,8183,8184,8185,8186,8187,8188,8189,8190,8191,8192,8193,8194,
946548195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,
946558210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223,8224,
946568225,8226,8227,8228,8229,8230,8231,8232,8233,8234,8235,8236,8237,8238,8239,
946578240,8241,8242,8243,8244,8245,8246,8247,8248,8249,8250,8251,8252,8253,8254,
946588255,8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,
946598270,8271,8272,8273,8274,8275,8276,8277,8278,8279,8280,8281,8282,8283,8284,
946608285,8286,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,
946618300,8301,8302,8303,8304,8305,8306,8307,8308,8309,8310,8311,8312,8313,8314,
946628315,8316,8317,8318,8319,8320,8321,8322,8323,8324,8325,8326,8327,8328,8329,
946638330,8331,8332,8333,8334,8335,8336,8337,8338,8339,8340,8341,8342,8343,8344,
946648345,8346,8347,8348,8349,8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,
946658360,8361,8362,8363,8364,8365,8366,8367,8368,8369,8370,8371,8372,8373,8374,
946668375,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8388,8389,
946678390,8391,8392,8393,8394,8395,8396,8397,8398,8399,8400,8401,8402,8403,8404,
946688405,8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,8416,8417,8418,8419,
946698420,8421,8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,8432,8433,8434,
946708435,8436,8437,8438,8439,8440,8441,8442,8443,8444,8445,8446,8447,8448,8449,
946718450,8451,8452,8453,8454,8455,8456,8457,8458,8459,8460,8461,8462,8463,8464,
946728465,8466,8467,8468,8469,8470,8471,8472,8473,8474,8475,8476,8477,8478,8479,
946738480,8481,8482,8483,8484,8485,8486,8487,8488,8489,8490,8491,8492,8493,8494,
946748495,8496,8497,8498,8499,8500,8501,8502,8503,8504,8505,8506,8507,8508,8509,
946758510,8511,8512,8513,8514,8515,8516,8517,8518,8519,8520,8521,8522,8523,8524,
946768525,8498,8527,8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538,8539,
946778540,8541,8542,8543,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,
946788555,8556,8557,8558,8559,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,
946798554,8555,8556,8557,8558,8559,8576,8577,8578,8579,8579,8581,8582,8583,8584,
946808585,8586,8587,8588,8589,8590,8591,8592,8593,8594,8595,8596,8597,8598,8599,
946818600,8601,8602,8603,8604,8605,8606,8607,8608,8609,8610,8611,8612,8613,8614,
946828615,8616,8617,8618,8619,8620,8621,8622,8623,8624,8625,8626,8627,8628,8629,
946838630,8631,8632,8633,8634,8635,8636,8637,8638,8639,8640,8641,8642,8643,8644,
946848645,8646,8647,8648,8649,8650,8651,8652,8653,8654,8655,8656,8657,8658,8659,
946858660,8661,8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,8672,8673,8674,
946868675,8676,8677,8678,8679,8680,8681,8682,8683,8684,8685,8686,8687,8688,8689,
946878690,8691,8692,8693,8694,8695,8696,8697,8698,8699,8700,8701,8702,8703,8704,
946888705,8706,8707,8708,8709,8710,8711,8712,8713,8714,8715,8716,8717,8718,8719,
946898720,8721,8722,8723,8724,8725,8726,8727,8728,8729,8730,8731,8732,8733,8734,
946908735,8736,8737,8738,8739,8740,8741,8742,8743,8744,8745,8746,8747,8748,8749,
946918750,8751,8752,8753,8754,8755,8756,8757,8758,8759,8760,8761,8762,8763,8764,
946928765,8766,8767,8768,8769,8770,8771,8772,8773,8774,8775,8776,8777,8778,8779,
946938780,8781,8782,8783,8784,8785,8786,8787,8788,8789,8790,8791,8792,8793,8794,
946948795,8796,8797,8798,8799,8800,8801,8802,8803,8804,8805,8806,8807,8808,8809,
946958810,8811,8812,8813,8814,8815,8816,8817,8818,8819,8820,8821,8822,8823,8824,
946968825,8826,8827,8828,8829,8830,8831,8832,8833,8834,8835,8836,8837,8838,8839,
946978840,8841,8842,8843,8844,8845,8846,8847,8848,8849,8850,8851,8852,8853,8854,
946988855,8856,8857,8858,8859,8860,8861,8862,8863,8864,8865,8866,8867,8868,8869,
946998870,8871,8872,8873,8874,8875,8876,8877,8878,8879,8880,8881,8882,8883,8884,
947008885,8886,8887,8888,8889,8890,8891,8892,8893,8894,8895,8896,8897,8898,8899,
947018900,8901,8902,8903,8904,8905,8906,8907,8908,8909,8910,8911,8912,8913,8914,
947028915,8916,8917,8918,8919,8920,8921,8922,8923,8924,8925,8926,8927,8928,8929,
947038930,8931,8932,8933,8934,8935,8936,8937,8938,8939,8940,8941,8942,8943,8944,
947048945,8946,8947,8948,8949,8950,8951,8952,8953,8954,8955,8956,8957,8958,8959,
947058960,8961,8962,8963,8964,8965,8966,8967,8968,8969,8970,8971,8972,8973,8974,
947068975,8976,8977,8978,8979,8980,8981,8982,8983,8984,8985,8986,8987,8988,8989,
947078990,8991,8992,8993,8994,8995,8996,8997,8998,8999,9000,9001,9002,9003,9004,
947089005,9006,9007,9008,9009,9010,9011,9012,9013,9014,9015,9016,9017,9018,9019,
947099020,9021,9022,9023,9024,9025,9026,9027,9028,9029,9030,9031,9032,9033,9034,
947109035,9036,9037,9038,9039,9040,9041,9042,9043,9044,9045,9046,9047,9048,9049,
947119050,9051,9052,9053,9054,9055,9056,9057,9058,9059,9060,9061,9062,9063,9064,
947129065,9066,9067,9068,9069,9070,9071,9072,9073,9074,9075,9076,9077,9078,9079,
947139080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,
947149095,9096,9097,9098,9099,9100,9101,9102,9103,9104,9105,9106,9107,9108,9109,
947159110,9111,9112,9113,9114,9115,9116,9117,9118,9119,9120,9121,9122,9123,9124,
947169125,9126,9127,9128,9129,9130,9131,9132,9133,9134,9135,9136,9137,9138,9139,
947179140,9141,9142,9143,9144,9145,9146,9147,9148,9149,9150,9151,9152,9153,9154,
947189155,9156,9157,9158,9159,9160,9161,9162,9163,9164,9165,9166,9167,9168,9169,
947199170,9171,9172,9173,9174,9175,9176,9177,9178,9179,9180,9181,9182,9183,9184,
947209185,9186,9187,9188,9189,9190,9191,9192,9193,9194,9195,9196,9197,9198,9199,
947219200,9201,9202,9203,9204,9205,9206,9207,9208,9209,9210,9211,9212,9213,9214,
947229215,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,
947239230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,
947249245,9246,9247,9248,9249,9250,9251,9252,9253,9254,9255,9256,9257,9258,9259,
947259260,9261,9262,9263,9264,9265,9266,9267,9268,9269,9270,9271,9272,9273,9274,
947269275,9276,9277,9278,9279,9280,9281,9282,9283,9284,9285,9286,9287,9288,9289,
947279290,9291,9292,9293,9294,9295,9296,9297,9298,9299,9300,9301,9302,9303,9304,
947289305,9306,9307,9308,9309,9310,9311,9312,9313,9314,9315,9316,9317,9318,9319,
947299320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,9332,9333,9334,
947309335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,
947319350,9351,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,
947329365,9366,9367,9368,9369,9370,9371,9372,9373,9374,9375,9376,9377,9378,9379,
947339380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,
947349395,9396,9397,9398,9399,9400,9401,9402,9403,9404,9405,9406,9407,9408,9409,
947359410,9411,9412,9413,9414,9415,9416,9417,9418,9419,9420,9421,9422,9423,9398,
947369399,9400,9401,9402,9403,9404,9405,9406,9407,9408,9409,9410,9411,9412,9413,
947379414,9415,9416,9417,9418,9419,9420,9421,9422,9423,9450,9451,9452,9453,9454,
947389455,9456,9457,9458,9459,9460,9461,9462,9463,9464,9465,9466,9467,9468,9469,
947399470,9471,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,
947409485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,
947419500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,
947429515,9516,9517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,
947439530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,
947449545,9546,9547,9548,9549,9550,9551,9552,9553,9554,9555,9556,9557,9558,9559,
947459560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,
947469575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9588,9589,
947479590,9591,9592,9593,9594,9595,9596,9597,9598,9599,9600,9601,9602,9603,9604,
947489605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9616,9617,9618,9619,
947499620,9621,9622,9623,9624,9625,9626,9627,9628,9629,9630,9631,9632,9633,9634,
947509635,9636,9637,9638,9639,9640,9641,9642,9643,9644,9645,9646,9647,9648,9649,
947519650,9651,9652,9653,9654,9655,9656,9657,9658,9659,9660,9661,9662,9663,9664,
947529665,9666,9667,9668,9669,9670,9671,9672,9673,9674,9675,9676,9677,9678,9679,
947539680,9681,9682,9683,9684,9685,9686,9687,9688,9689,9690,9691,9692,9693,9694,
947549695,9696,9697,9698,9699,9700,9701,9702,9703,9704,9705,9706,9707,9708,9709,
947559710,9711,9712,9713,9714,9715,9716,9717,9718,9719,9720,9721,9722,9723,9724,
947569725,9726,9727,9728,9729,9730,9731,9732,9733,9734,9735,9736,9737,9738,9739,
947579740,9741,9742,9743,9744,9745,9746,9747,9748,9749,9750,9751,9752,9753,9754,
947589755,9756,9757,9758,9759,9760,9761,9762,9763,9764,9765,9766,9767,9768,9769,
947599770,9771,9772,9773,9774,9775,9776,9777,9778,9779,9780,9781,9782,9783,9784,
947609785,9786,9787,9788,9789,9790,9791,9792,9793,9794,9795,9796,9797,9798,9799,
947619800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9812,9813,9814,
947629815,9816,9817,9818,9819,9820,9821,9822,9823,9824,9825,9826,9827,9828,9829,
947639830,9831,9832,9833,9834,9835,9836,9837,9838,9839,9840,9841,9842,9843,9844,
947649845,9846,9847,9848,9849,9850,9851,9852,9853,9854,9855,9856,9857,9858,9859,
947659860,9861,9862,9863,9864,9865,9866,9867,9868,9869,9870,9871,9872,9873,9874,
947669875,9876,9877,9878,9879,9880,9881,9882,9883,9884,9885,9886,9887,9888,9889,
947679890,9891,9892,9893,9894,9895,9896,9897,9898,9899,9900,9901,9902,9903,9904,
947689905,9906,9907,9908,9909,9910,9911,9912,9913,9914,9915,9916,9917,9918,9919,
947699920,9921,9922,9923,9924,9925,9926,9927,9928,9929,9930,9931,9932,9933,9934,
947709935,9936,9937,9938,9939,9940,9941,9942,9943,9944,9945,9946,9947,9948,9949,
947719950,9951,9952,9953,9954,9955,9956,9957,9958,9959,9960,9961,9962,9963,9964,
947729965,9966,9967,9968,9969,9970,9971,9972,9973,9974,9975,9976,9977,9978,9979,
947739980,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990,9991,9992,9993,9994,
947749995,9996,9997,9998,9999,10000,10001,10002,10003,10004,10005,10006,10007,
9477510008,10009,10010,10011,10012,10013,10014,10015,10016,10017,10018,10019,
9477610020,10021,10022,10023,10024,10025,10026,10027,10028,10029,10030,10031,
9477710032,10033,10034,10035,10036,10037,10038,10039,10040,10041,10042,10043,
9477810044,10045,10046,10047,10048,10049,10050,10051,10052,10053,10054,10055,
9477910056,10057,10058,10059,10060,10061,10062,10063,10064,10065,10066,10067,
9478010068,10069,10070,10071,10072,10073,10074,10075,10076,10077,10078,10079,
9478110080,10081,10082,10083,10084,10085,10086,10087,10088,10089,10090,10091,
9478210092,10093,10094,10095,10096,10097,10098,10099,10100,10101,10102,10103,
9478310104,10105,10106,10107,10108,10109,10110,10111,10112,10113,10114,10115,
9478410116,10117,10118,10119,10120,10121,10122,10123,10124,10125,10126,10127,
9478510128,10129,10130,10131,10132,10133,10134,10135,10136,10137,10138,10139,
9478610140,10141,10142,10143,10144,10145,10146,10147,10148,10149,10150,10151,
9478710152,10153,10154,10155,10156,10157,10158,10159,10160,10161,10162,10163,
9478810164,10165,10166,10167,10168,10169,10170,10171,10172,10173,10174,10175,
9478910176,10177,10178,10179,10180,10181,10182,10183,10184,10185,10186,10187,
9479010188,10189,10190,10191,10192,10193,10194,10195,10196,10197,10198,10199,
9479110200,10201,10202,10203,10204,10205,10206,10207,10208,10209,10210,10211,
9479210212,10213,10214,10215,10216,10217,10218,10219,10220,10221,10222,10223,
9479310224,10225,10226,10227,10228,10229,10230,10231,10232,10233,10234,10235,
9479410236,10237,10238,10239,10240,10241,10242,10243,10244,10245,10246,10247,
9479510248,10249,10250,10251,10252,10253,10254,10255,10256,10257,10258,10259,
9479610260,10261,10262,10263,10264,10265,10266,10267,10268,10269,10270,10271,
9479710272,10273,10274,10275,10276,10277,10278,10279,10280,10281,10282,10283,
9479810284,10285,10286,10287,10288,10289,10290,10291,10292,10293,10294,10295,
9479910296,10297,10298,10299,10300,10301,10302,10303,10304,10305,10306,10307,
9480010308,10309,10310,10311,10312,10313,10314,10315,10316,10317,10318,10319,
9480110320,10321,10322,10323,10324,10325,10326,10327,10328,10329,10330,10331,
9480210332,10333,10334,10335,10336,10337,10338,10339,10340,10341,10342,10343,
9480310344,10345,10346,10347,10348,10349,10350,10351,10352,10353,10354,10355,
9480410356,10357,10358,10359,10360,10361,10362,10363,10364,10365,10366,10367,
9480510368,10369,10370,10371,10372,10373,10374,10375,10376,10377,10378,10379,
9480610380,10381,10382,10383,10384,10385,10386,10387,10388,10389,10390,10391,
9480710392,10393,10394,10395,10396,10397,10398,10399,10400,10401,10402,10403,
9480810404,10405,10406,10407,10408,10409,10410,10411,10412,10413,10414,10415,
9480910416,10417,10418,10419,10420,10421,10422,10423,10424,10425,10426,10427,
9481010428,10429,10430,10431,10432,10433,10434,10435,10436,10437,10438,10439,
9481110440,10441,10442,10443,10444,10445,10446,10447,10448,10449,10450,10451,
9481210452,10453,10454,10455,10456,10457,10458,10459,10460,10461,10462,10463,
9481310464,10465,10466,10467,10468,10469,10470,10471,10472,10473,10474,10475,
9481410476,10477,10478,10479,10480,10481,10482,10483,10484,10485,10486,10487,
9481510488,10489,10490,10491,10492,10493,10494,10495,10496,10497,10498,10499,
9481610500,10501,10502,10503,10504,10505,10506,10507,10508,10509,10510,10511,
9481710512,10513,10514,10515,10516,10517,10518,10519,10520,10521,10522,10523,
9481810524,10525,10526,10527,10528,10529,10530,10531,10532,10533,10534,10535,
9481910536,10537,10538,10539,10540,10541,10542,10543,10544,10545,10546,10547,
9482010548,10549,10550,10551,10552,10553,10554,10555,10556,10557,10558,10559,
9482110560,10561,10562,10563,10564,10565,10566,10567,10568,10569,10570,10571,
9482210572,10573,10574,10575,10576,10577,10578,10579,10580,10581,10582,10583,
9482310584,10585,10586,10587,10588,10589,10590,10591,10592,10593,10594,10595,
9482410596,10597,10598,10599,10600,10601,10602,10603,10604,10605,10606,10607,
9482510608,10609,10610,10611,10612,10613,10614,10615,10616,10617,10618,10619,
9482610620,10621,10622,10623,10624,10625,10626,10627,10628,10629,10630,10631,
9482710632,10633,10634,10635,10636,10637,10638,10639,10640,10641,10642,10643,
9482810644,10645,10646,10647,10648,10649,10650,10651,10652,10653,10654,10655,
9482910656,10657,10658,10659,10660,10661,10662,10663,10664,10665,10666,10667,
9483010668,10669,10670,10671,10672,10673,10674,10675,10676,10677,10678,10679,
9483110680,10681,10682,10683,10684,10685,10686,10687,10688,10689,10690,10691,
9483210692,10693,10694,10695,10696,10697,10698,10699,10700,10701,10702,10703,
9483310704,10705,10706,10707,10708,10709,10710,10711,10712,10713,10714,10715,
9483410716,10717,10718,10719,10720,10721,10722,10723,10724,10725,10726,10727,
9483510728,10729,10730,10731,10732,10733,10734,10735,10736,10737,10738,10739,
9483610740,10741,10742,10743,10744,10745,10746,10747,10748,10749,10750,10751,
9483710752,10753,10754,10755,10756,10757,10758,10759,10760,10761,10762,10763,
9483810764,10765,10766,10767,10768,10769,10770,10771,10772,10773,10774,10775,
9483910776,10777,10778,10779,10780,10781,10782,10783,10784,10785,10786,10787,
9484010788,10789,10790,10791,10792,10793,10794,10795,10796,10797,10798,10799,
9484110800,10801,10802,10803,10804,10805,10806,10807,10808,10809,10810,10811,
9484210812,10813,10814,10815,10816,10817,10818,10819,10820,10821,10822,10823,
9484310824,10825,10826,10827,10828,10829,10830,10831,10832,10833,10834,10835,
9484410836,10837,10838,10839,10840,10841,10842,10843,10844,10845,10846,10847,
9484510848,10849,10850,10851,10852,10853,10854,10855,10856,10857,10858,10859,
9484610860,10861,10862,10863,10864,10865,10866,10867,10868,10869,10870,10871,
9484710872,10873,10874,10875,10876,10877,10878,10879,10880,10881,10882,10883,
9484810884,10885,10886,10887,10888,10889,10890,10891,10892,10893,10894,10895,
9484910896,10897,10898,10899,10900,10901,10902,10903,10904,10905,10906,10907,
9485010908,10909,10910,10911,10912,10913,10914,10915,10916,10917,10918,10919,
9485110920,10921,10922,10923,10924,10925,10926,10927,10928,10929,10930,10931,
9485210932,10933,10934,10935,10936,10937,10938,10939,10940,10941,10942,10943,
9485310944,10945,10946,10947,10948,10949,10950,10951,10952,10953,10954,10955,
9485410956,10957,10958,10959,10960,10961,10962,10963,10964,10965,10966,10967,
9485510968,10969,10970,10971,10972,10973,10974,10975,10976,10977,10978,10979,
9485610980,10981,10982,10983,10984,10985,10986,10987,10988,10989,10990,10991,
9485710992,10993,10994,10995,10996,10997,10998,10999,11000,11001,11002,11003,
9485811004,11005,11006,11007,11008,11009,11010,11011,11012,11013,11014,11015,
9485911016,11017,11018,11019,11020,11021,11022,11023,11024,11025,11026,11027,
9486011028,11029,11030,11031,11032,11033,11034,11035,11036,11037,11038,11039,
9486111040,11041,11042,11043,11044,11045,11046,11047,11048,11049,11050,11051,
9486211052,11053,11054,11055,11056,11057,11058,11059,11060,11061,11062,11063,
9486311064,11065,11066,11067,11068,11069,11070,11071,11072,11073,11074,11075,
9486411076,11077,11078,11079,11080,11081,11082,11083,11084,11085,11086,11087,
9486511088,11089,11090,11091,11092,11093,11094,11095,11096,11097,11098,11099,
9486611100,11101,11102,11103,11104,11105,11106,11107,11108,11109,11110,11111,
9486711112,11113,11114,11115,11116,11117,11118,11119,11120,11121,11122,11123,
9486811124,11125,11126,11127,11128,11129,11130,11131,11132,11133,11134,11135,
9486911136,11137,11138,11139,11140,11141,11142,11143,11144,11145,11146,11147,
9487011148,11149,11150,11151,11152,11153,11154,11155,11156,11157,11158,11159,
9487111160,11161,11162,11163,11164,11165,11166,11167,11168,11169,11170,11171,
9487211172,11173,11174,11175,11176,11177,11178,11179,11180,11181,11182,11183,
9487311184,11185,11186,11187,11188,11189,11190,11191,11192,11193,11194,11195,
9487411196,11197,11198,11199,11200,11201,11202,11203,11204,11205,11206,11207,
9487511208,11209,11210,11211,11212,11213,11214,11215,11216,11217,11218,11219,
9487611220,11221,11222,11223,11224,11225,11226,11227,11228,11229,11230,11231,
9487711232,11233,11234,11235,11236,11237,11238,11239,11240,11241,11242,11243,
9487811244,11245,11246,11247,11248,11249,11250,11251,11252,11253,11254,11255,
9487911256,11257,11258,11259,11260,11261,11262,11263,11264,11265,11266,11267,
9488011268,11269,11270,11271,11272,11273,11274,11275,11276,11277,11278,11279,
9488111280,11281,11282,11283,11284,11285,11286,11287,11288,11289,11290,11291,
9488211292,11293,11294,11295,11296,11297,11298,11299,11300,11301,11302,11303,
9488311304,11305,11306,11307,11308,11309,11310,11311,11264,11265,11266,11267,
9488411268,11269,11270,11271,11272,11273,11274,11275,11276,11277,11278,11279,
9488511280,11281,11282,11283,11284,11285,11286,11287,11288,11289,11290,11291,
9488611292,11293,11294,11295,11296,11297,11298,11299,11300,11301,11302,11303,
9488711304,11305,11306,11307,11308,11309,11310,11359,11360,11360,11362,11363,
9488811364,570,574,11367,11367,11369,11369,11371,11371,11373,11374,11375,11376,
9488911377,11378,11378,11380,11381,11381,11383,11384,11385,11386,11387,11388,
9489011389,11390,11391,11392,11392,11394,11394,11396,11396,11398,11398,11400,
9489111400,11402,11402,11404,11404,11406,11406,11408,11408,11410,11410,11412,
9489211412,11414,11414,11416,11416,11418,11418,11420,11420,11422,11422,11424,
9489311424,11426,11426,11428,11428,11430,11430,11432,11432,11434,11434,11436,
9489411436,11438,11438,11440,11440,11442,11442,11444,11444,11446,11446,11448,
9489511448,11450,11450,11452,11452,11454,11454,11456,11456,11458,11458,11460,
9489611460,11462,11462,11464,11464,11466,11466,11468,11468,11470,11470,11472,
9489711472,11474,11474,11476,11476,11478,11478,11480,11480,11482,11482,11484,
9489811484,11486,11486,11488,11488,11490,11490,11492,11493,11494,11495,11496,
9489911497,11498,11499,11499,11501,11501,11503,11504,11505,11506,11506,11508,
9490011509,11510,11511,11512,11513,11514,11515,11516,11517,11518,11519,4256,
949014257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,
949024272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,
949034287,4288,4289,4290,4291,4292,4293,11558,4295,11560,11561,11562,11563,
9490411564,4301,11566,11567,11568,11569,11570,11571,11572,11573,11574,11575,
9490511576,11577,11578,11579,11580,11581,11582,11583,11584,11585,11586,11587,
9490611588,11589,11590,11591,11592,11593,11594,11595,11596,11597,11598,11599,
9490711600,11601,11602,11603,11604,11605,11606,11607,11608,11609,11610,11611,
9490811612,11613,11614,11615,11616,11617,11618,11619,11620,11621,11622,11623,
9490911624,11625,11626,11627,11628,11629,11630,11631,11632,11633,11634,11635,
9491011636,11637,11638,11639,11640,11641,11642,11643,11644,11645,11646,11647,
9491111648,11649,11650,11651,11652,11653,11654,11655,11656,11657,11658,11659,
9491211660,11661,11662,11663,11664,11665,11666,11667,11668,11669,11670,11671,
9491311672,11673,11674,11675,11676,11677,11678,11679,11680,11681,11682,11683,
9491411684,11685,11686,11687,11688,11689,11690,11691,11692,11693,11694,11695,
9491511696,11697,11698,11699,11700,11701,11702,11703,11704,11705,11706,11707,
9491611708,11709,11710,11711,11712,11713,11714,11715,11716,11717,11718,11719,
9491711720,11721,11722,11723,11724,11725,11726,11727,11728,11729,11730,11731,
9491811732,11733,11734,11735,11736,11737,11738,11739,11740,11741,11742,11743,
9491911744,11745,11746,11747,11748,11749,11750,11751,11752,11753,11754,11755,
9492011756,11757,11758,11759,11760,11761,11762,11763,11764,11765,11766,11767,
9492111768,11769,11770,11771,11772,11773,11774,11775,11776,11777,11778,11779,
9492211780,11781,11782,11783,11784,11785,11786,11787,11788,11789,11790,11791,
9492311792,11793,11794,11795,11796,11797,11798,11799,11800,11801,11802,11803,
9492411804,11805,11806,11807,11808,11809,11810,11811,11812,11813,11814,11815,
9492511816,11817,11818,11819,11820,11821,11822,11823,11824,11825,11826,11827,
9492611828,11829,11830,11831,11832,11833,11834,11835,11836,11837,11838,11839,
9492711840,11841,11842,11843,11844,11845,11846,11847,11848,11849,11850,11851,
9492811852,11853,11854,11855,11856,11857,11858,11859,11860,11861,11862,11863,
9492911864,11865,11866,11867,11868,11869,11870,11871,11872,11873,11874,11875,
9493011876,11877,11878,11879,11880,11881,11882,11883,11884,11885,11886,11887,
9493111888,11889,11890,11891,11892,11893,11894,11895,11896,11897,11898,11899,
9493211900,11901,11902,11903,11904,11905,11906,11907,11908,11909,11910,11911,
9493311912,11913,11914,11915,11916,11917,11918,11919,11920,11921,11922,11923,
9493411924,11925,11926,11927,11928,11929,11930,11931,11932,11933,11934,11935,
9493511936,11937,11938,11939,11940,11941,11942,11943,11944,11945,11946,11947,
9493611948,11949,11950,11951,11952,11953,11954,11955,11956,11957,11958,11959,
9493711960,11961,11962,11963,11964,11965,11966,11967,11968,11969,11970,11971,
9493811972,11973,11974,11975,11976,11977,11978,11979,11980,11981,11982,11983,
9493911984,11985,11986,11987,11988,11989,11990,11991,11992,11993,11994,11995,
9494011996,11997,11998,11999,12000,12001,12002,12003,12004,12005,12006,12007,
9494112008,12009,12010,12011,12012,12013,12014,12015,12016,12017,12018,12019,
9494212020,12021,12022,12023,12024,12025,12026,12027,12028,12029,12030,12031,
9494312032,12033,12034,12035,12036,12037,12038,12039,12040,12041,12042,12043,
9494412044,12045,12046,12047,12048,12049,12050,12051,12052,12053,12054,12055,
9494512056,12057,12058,12059,12060,12061,12062,12063,12064,12065,12066,12067,
9494612068,12069,12070,12071,12072,12073,12074,12075,12076,12077,12078,12079,
9494712080,12081,12082,12083,12084,12085,12086,12087,12088,12089,12090,12091,
9494812092,12093,12094,12095,12096,12097,12098,12099,12100,12101,12102,12103,
9494912104,12105,12106,12107,12108,12109,12110,12111,12112,12113,12114,12115,
9495012116,12117,12118,12119,12120,12121,12122,12123,12124,12125,12126,12127,
9495112128,12129,12130,12131,12132,12133,12134,12135,12136,12137,12138,12139,
9495212140,12141,12142,12143,12144,12145,12146,12147,12148,12149,12150,12151,
9495312152,12153,12154,12155,12156,12157,12158,12159,12160,12161,12162,12163,
9495412164,12165,12166,12167,12168,12169,12170,12171,12172,12173,12174,12175,
9495512176,12177,12178,12179,12180,12181,12182,12183,12184,12185,12186,12187,
9495612188,12189,12190,12191,12192,12193,12194,12195,12196,12197,12198,12199,
9495712200,12201,12202,12203,12204,12205,12206,12207,12208,12209,12210,12211,
9495812212,12213,12214,12215,12216,12217,12218,12219,12220,12221,12222,12223,
9495912224,12225,12226,12227,12228,12229,12230,12231,12232,12233,12234,12235,
9496012236,12237,12238,12239,12240,12241,12242,12243,12244,12245,12246,12247,
9496112248,12249,12250,12251,12252,12253,12254,12255,12256,12257,12258,12259,
9496212260,12261,12262,12263,12264,12265,12266,12267,12268,12269,12270,12271,
9496312272,12273,12274,12275,12276,12277,12278,12279,12280,12281,12282,12283,
9496412284,12285,12286,12287,12288,12289,12290,12291,12292,12293,12294,12295,
9496512296,12297,12298,12299,12300,12301,12302,12303,12304,12305,12306,12307,
9496612308,12309,12310,12311,12312,12313,12314,12315,12316,12317,12318,12319,
9496712320,12321,12322,12323,12324,12325,12326,12327,12328,12329,12330,12331,
9496812332,12333,12334,12335,12336,12337,12338,12339,12340,12341,12342,12343,
9496912344,12345,12346,12347,12348,12349,12350,12351,12352,12353,12354,12355,
9497012356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,
9497112368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,
9497212380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,
9497312392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,
9497412404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,
9497512416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,
9497612428,12429,12430,12431,12432,12433,12434,12435,12436,12437,12438,12439,
9497712440,12441,12442,12443,12444,12445,12446,12447,12448,12449,12450,12451,
9497812452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,
9497912464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,
9498012476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,
9498112488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,
9498212500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,
9498312512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,
9498412524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,12535,
9498512536,12537,12538,12539,12540,12541,12542,12543,12544,12545,12546,12547,
9498612548,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,
9498712560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,
9498812572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,
9498912584,12585,12586,12587,12588,12589,12590,12591,12592,12593,12594,12595,
9499012596,12597,12598,12599,12600,12601,12602,12603,12604,12605,12606,12607,
9499112608,12609,12610,12611,12612,12613,12614,12615,12616,12617,12618,12619,
9499212620,12621,12622,12623,12624,12625,12626,12627,12628,12629,12630,12631,
9499312632,12633,12634,12635,12636,12637,12638,12639,12640,12641,12642,12643,
9499412644,12645,12646,12647,12648,12649,12650,12651,12652,12653,12654,12655,
9499512656,12657,12658,12659,12660,12661,12662,12663,12664,12665,12666,12667,
9499612668,12669,12670,12671,12672,12673,12674,12675,12676,12677,12678,12679,
9499712680,12681,12682,12683,12684,12685,12686,12687,12688,12689,12690,12691,
9499812692,12693,12694,12695,12696,12697,12698,12699,12700,12701,12702,12703,
9499912704,12705,12706,12707,12708,12709,12710,12711,12712,12713,12714,12715,
9500012716,12717,12718,12719,12720,12721,12722,12723,12724,12725,12726,12727,
9500112728,12729,12730,12731,12732,12733,12734,12735,12736,12737,12738,12739,
9500212740,12741,12742,12743,12744,12745,12746,12747,12748,12749,12750,12751,
9500312752,12753,12754,12755,12756,12757,12758,12759,12760,12761,12762,12763,
9500412764,12765,12766,12767,12768,12769,12770,12771,12772,12773,12774,12775,
9500512776,12777,12778,12779,12780,12781,12782,12783,12784,12785,12786,12787,
9500612788,12789,12790,12791,12792,12793,12794,12795,12796,12797,12798,12799,
9500712800,12801,12802,12803,12804,12805,12806,12807,12808,12809,12810,12811,
9500812812,12813,12814,12815,12816,12817,12818,12819,12820,12821,12822,12823,
9500912824,12825,12826,12827,12828,12829,12830,12831,12832,12833,12834,12835,
9501012836,12837,12838,12839,12840,12841,12842,12843,12844,12845,12846,12847,
9501112848,12849,12850,12851,12852,12853,12854,12855,12856,12857,12858,12859,
9501212860,12861,12862,12863,12864,12865,12866,12867,12868,12869,12870,12871,
9501312872,12873,12874,12875,12876,12877,12878,12879,12880,12881,12882,12883,
9501412884,12885,12886,12887,12888,12889,12890,12891,12892,12893,12894,12895,
9501512896,12897,12898,12899,12900,12901,12902,12903,12904,12905,12906,12907,
9501612908,12909,12910,12911,12912,12913,12914,12915,12916,12917,12918,12919,
9501712920,12921,12922,12923,12924,12925,12926,12927,12928,12929,12930,12931,
9501812932,12933,12934,12935,12936,12937,12938,12939,12940,12941,12942,12943,
9501912944,12945,12946,12947,12948,12949,12950,12951,12952,12953,12954,12955,
9502012956,12957,12958,12959,12960,12961,12962,12963,12964,12965,12966,12967,
9502112968,12969,12970,12971,12972,12973,12974,12975,12976,12977,12978,12979,
9502212980,12981,12982,12983,12984,12985,12986,12987,12988,12989,12990,12991,
9502312992,12993,12994,12995,12996,12997,12998,12999,13000,13001,13002,13003,
9502413004,13005,13006,13007,13008,13009,13010,13011,13012,13013,13014,13015,
9502513016,13017,13018,13019,13020,13021,13022,13023,13024,13025,13026,13027,
9502613028,13029,13030,13031,13032,13033,13034,13035,13036,13037,13038,13039,
9502713040,13041,13042,13043,13044,13045,13046,13047,13048,13049,13050,13051,
9502813052,13053,13054,13055,13056,13057,13058,13059,13060,13061,13062,13063,
9502913064,13065,13066,13067,13068,13069,13070,13071,13072,13073,13074,13075,
9503013076,13077,13078,13079,13080,13081,13082,13083,13084,13085,13086,13087,
9503113088,13089,13090,13091,13092,13093,13094,13095,13096,13097,13098,13099,
9503213100,13101,13102,13103,13104,13105,13106,13107,13108,13109,13110,13111,
9503313112,13113,13114,13115,13116,13117,13118,13119,13120,13121,13122,13123,
9503413124,13125,13126,13127,13128,13129,13130,13131,13132,13133,13134,13135,
9503513136,13137,13138,13139,13140,13141,13142,13143,13144,13145,13146,13147,
9503613148,13149,13150,13151,13152,13153,13154,13155,13156,13157,13158,13159,
9503713160,13161,13162,13163,13164,13165,13166,13167,13168,13169,13170,13171,
9503813172,13173,13174,13175,13176,13177,13178,13179,13180,13181,13182,13183,
9503913184,13185,13186,13187,13188,13189,13190,13191,13192,13193,13194,13195,
9504013196,13197,13198,13199,13200,13201,13202,13203,13204,13205,13206,13207,
9504113208,13209,13210,13211,13212,13213,13214,13215,13216,13217,13218,13219,
9504213220,13221,13222,13223,13224,13225,13226,13227,13228,13229,13230,13231,
9504313232,13233,13234,13235,13236,13237,13238,13239,13240,13241,13242,13243,
9504413244,13245,13246,13247,13248,13249,13250,13251,13252,13253,13254,13255,
9504513256,13257,13258,13259,13260,13261,13262,13263,13264,13265,13266,13267,
9504613268,13269,13270,13271,13272,13273,13274,13275,13276,13277,13278,13279,
9504713280,13281,13282,13283,13284,13285,13286,13287,13288,13289,13290,13291,
9504813292,13293,13294,13295,13296,13297,13298,13299,13300,13301,13302,13303,
9504913304,13305,13306,13307,13308,13309,13310,13311,13312,13313,13314,13315,
9505013316,13317,13318,13319,13320,13321,13322,13323,13324,13325,13326,13327,
9505113328,13329,13330,13331,13332,13333,13334,13335,13336,13337,13338,13339,
9505213340,13341,13342,13343,13344,13345,13346,13347,13348,13349,13350,13351,
9505313352,13353,13354,13355,13356,13357,13358,13359,13360,13361,13362,13363,
9505413364,13365,13366,13367,13368,13369,13370,13371,13372,13373,13374,13375,
9505513376,13377,13378,13379,13380,13381,13382,13383,13384,13385,13386,13387,
9505613388,13389,13390,13391,13392,13393,13394,13395,13396,13397,13398,13399,
9505713400,13401,13402,13403,13404,13405,13406,13407,13408,13409,13410,13411,
9505813412,13413,13414,13415,13416,13417,13418,13419,13420,13421,13422,13423,
9505913424,13425,13426,13427,13428,13429,13430,13431,13432,13433,13434,13435,
9506013436,13437,13438,13439,13440,13441,13442,13443,13444,13445,13446,13447,
9506113448,13449,13450,13451,13452,13453,13454,13455,13456,13457,13458,13459,
9506213460,13461,13462,13463,13464,13465,13466,13467,13468,13469,13470,13471,
9506313472,13473,13474,13475,13476,13477,13478,13479,13480,13481,13482,13483,
9506413484,13485,13486,13487,13488,13489,13490,13491,13492,13493,13494,13495,
9506513496,13497,13498,13499,13500,13501,13502,13503,13504,13505,13506,13507,
9506613508,13509,13510,13511,13512,13513,13514,13515,13516,13517,13518,13519,
9506713520,13521,13522,13523,13524,13525,13526,13527,13528,13529,13530,13531,
9506813532,13533,13534,13535,13536,13537,13538,13539,13540,13541,13542,13543,
9506913544,13545,13546,13547,13548,13549,13550,13551,13552,13553,13554,13555,
9507013556,13557,13558,13559,13560,13561,13562,13563,13564,13565,13566,13567,
9507113568,13569,13570,13571,13572,13573,13574,13575,13576,13577,13578,13579,
9507213580,13581,13582,13583,13584,13585,13586,13587,13588,13589,13590,13591,
9507313592,13593,13594,13595,13596,13597,13598,13599,13600,13601,13602,13603,
9507413604,13605,13606,13607,13608,13609,13610,13611,13612,13613,13614,13615,
9507513616,13617,13618,13619,13620,13621,13622,13623,13624,13625,13626,13627,
9507613628,13629,13630,13631,13632,13633,13634,13635,13636,13637,13638,13639,
9507713640,13641,13642,13643,13644,13645,13646,13647,13648,13649,13650,13651,
9507813652,13653,13654,13655,13656,13657,13658,13659,13660,13661,13662,13663,
9507913664,13665,13666,13667,13668,13669,13670,13671,13672,13673,13674,13675,
9508013676,13677,13678,13679,13680,13681,13682,13683,13684,13685,13686,13687,
9508113688,13689,13690,13691,13692,13693,13694,13695,13696,13697,13698,13699,
9508213700,13701,13702,13703,13704,13705,13706,13707,13708,13709,13710,13711,
9508313712,13713,13714,13715,13716,13717,13718,13719,13720,13721,13722,13723,
9508413724,13725,13726,13727,13728,13729,13730,13731,13732,13733,13734,13735,
9508513736,13737,13738,13739,13740,13741,13742,13743,13744,13745,13746,13747,
9508613748,13749,13750,13751,13752,13753,13754,13755,13756,13757,13758,13759,
9508713760,13761,13762,13763,13764,13765,13766,13767,13768,13769,13770,13771,
9508813772,13773,13774,13775,13776,13777,13778,13779,13780,13781,13782,13783,
9508913784,13785,13786,13787,13788,13789,13790,13791,13792,13793,13794,13795,
9509013796,13797,13798,13799,13800,13801,13802,13803,13804,13805,13806,13807,
9509113808,13809,13810,13811,13812,13813,13814,13815,13816,13817,13818,13819,
9509213820,13821,13822,13823,13824,13825,13826,13827,13828,13829,13830,13831,
9509313832,13833,13834,13835,13836,13837,13838,13839,13840,13841,13842,13843,
9509413844,13845,13846,13847,13848,13849,13850,13851,13852,13853,13854,13855,
9509513856,13857,13858,13859,13860,13861,13862,13863,13864,13865,13866,13867,
9509613868,13869,13870,13871,13872,13873,13874,13875,13876,13877,13878,13879,
9509713880,13881,13882,13883,13884,13885,13886,13887,13888,13889,13890,13891,
9509813892,13893,13894,13895,13896,13897,13898,13899,13900,13901,13902,13903,
9509913904,13905,13906,13907,13908,13909,13910,13911,13912,13913,13914,13915,
9510013916,13917,13918,13919,13920,13921,13922,13923,13924,13925,13926,13927,
9510113928,13929,13930,13931,13932,13933,13934,13935,13936,13937,13938,13939,
9510213940,13941,13942,13943,13944,13945,13946,13947,13948,13949,13950,13951,
9510313952,13953,13954,13955,13956,13957,13958,13959,13960,13961,13962,13963,
9510413964,13965,13966,13967,13968,13969,13970,13971,13972,13973,13974,13975,
9510513976,13977,13978,13979,13980,13981,13982,13983,13984,13985,13986,13987,
9510613988,13989,13990,13991,13992,13993,13994,13995,13996,13997,13998,13999,
9510714000,14001,14002,14003,14004,14005,14006,14007,14008,14009,14010,14011,
9510814012,14013,14014,14015,14016,14017,14018,14019,14020,14021,14022,14023,
9510914024,14025,14026,14027,14028,14029,14030,14031,14032,14033,14034,14035,
9511014036,14037,14038,14039,14040,14041,14042,14043,14044,14045,14046,14047,
9511114048,14049,14050,14051,14052,14053,14054,14055,14056,14057,14058,14059,
9511214060,14061,14062,14063,14064,14065,14066,14067,14068,14069,14070,14071,
9511314072,14073,14074,14075,14076,14077,14078,14079,14080,14081,14082,14083,
9511414084,14085,14086,14087,14088,14089,14090,14091,14092,14093,14094,14095,
9511514096,14097,14098,14099,14100,14101,14102,14103,14104,14105,14106,14107,
9511614108,14109,14110,14111,14112,14113,14114,14115,14116,14117,14118,14119,
9511714120,14121,14122,14123,14124,14125,14126,14127,14128,14129,14130,14131,
9511814132,14133,14134,14135,14136,14137,14138,14139,14140,14141,14142,14143,
9511914144,14145,14146,14147,14148,14149,14150,14151,14152,14153,14154,14155,
9512014156,14157,14158,14159,14160,14161,14162,14163,14164,14165,14166,14167,
9512114168,14169,14170,14171,14172,14173,14174,14175,14176,14177,14178,14179,
9512214180,14181,14182,14183,14184,14185,14186,14187,14188,14189,14190,14191,
9512314192,14193,14194,14195,14196,14197,14198,14199,14200,14201,14202,14203,
9512414204,14205,14206,14207,14208,14209,14210,14211,14212,14213,14214,14215,
9512514216,14217,14218,14219,14220,14221,14222,14223,14224,14225,14226,14227,
9512614228,14229,14230,14231,14232,14233,14234,14235,14236,14237,14238,14239,
9512714240,14241,14242,14243,14244,14245,14246,14247,14248,14249,14250,14251,
9512814252,14253,14254,14255,14256,14257,14258,14259,14260,14261,14262,14263,
9512914264,14265,14266,14267,14268,14269,14270,14271,14272,14273,14274,14275,
9513014276,14277,14278,14279,14280,14281,14282,14283,14284,14285,14286,14287,
9513114288,14289,14290,14291,14292,14293,14294,14295,14296,14297,14298,14299,
9513214300,14301,14302,14303,14304,14305,14306,14307,14308,14309,14310,14311,
9513314312,14313,14314,14315,14316,14317,14318,14319,14320,14321,14322,14323,
9513414324,14325,14326,14327,14328,14329,14330,14331,14332,14333,14334,14335,
9513514336,14337,14338,14339,14340,14341,14342,14343,14344,14345,14346,14347,
9513614348,14349,14350,14351,14352,14353,14354,14355,14356,14357,14358,14359,
9513714360,14361,14362,14363,14364,14365,14366,14367,14368,14369,14370,14371,
9513814372,14373,14374,14375,14376,14377,14378,14379,14380,14381,14382,14383,
9513914384,14385,14386,14387,14388,14389,14390,14391,14392,14393,14394,14395,
9514014396,14397,14398,14399,14400,14401,14402,14403,14404,14405,14406,14407,
9514114408,14409,14410,14411,14412,14413,14414,14415,14416,14417,14418,14419,
9514214420,14421,14422,14423,14424,14425,14426,14427,14428,14429,14430,14431,
9514314432,14433,14434,14435,14436,14437,14438,14439,14440,14441,14442,14443,
9514414444,14445,14446,14447,14448,14449,14450,14451,14452,14453,14454,14455,
9514514456,14457,14458,14459,14460,14461,14462,14463,14464,14465,14466,14467,
9514614468,14469,14470,14471,14472,14473,14474,14475,14476,14477,14478,14479,
9514714480,14481,14482,14483,14484,14485,14486,14487,14488,14489,14490,14491,
9514814492,14493,14494,14495,14496,14497,14498,14499,14500,14501,14502,14503,
9514914504,14505,14506,14507,14508,14509,14510,14511,14512,14513,14514,14515,
9515014516,14517,14518,14519,14520,14521,14522,14523,14524,14525,14526,14527,
9515114528,14529,14530,14531,14532,14533,14534,14535,14536,14537,14538,14539,
9515214540,14541,14542,14543,14544,14545,14546,14547,14548,14549,14550,14551,
9515314552,14553,14554,14555,14556,14557,14558,14559,14560,14561,14562,14563,
9515414564,14565,14566,14567,14568,14569,14570,14571,14572,14573,14574,14575,
9515514576,14577,14578,14579,14580,14581,14582,14583,14584,14585,14586,14587,
9515614588,14589,14590,14591,14592,14593,14594,14595,14596,14597,14598,14599,
9515714600,14601,14602,14603,14604,14605,14606,14607,14608,14609,14610,14611,
9515814612,14613,14614,14615,14616,14617,14618,14619,14620,14621,14622,14623,
9515914624,14625,14626,14627,14628,14629,14630,14631,14632,14633,14634,14635,
9516014636,14637,14638,14639,14640,14641,14642,14643,14644,14645,14646,14647,
9516114648,14649,14650,14651,14652,14653,14654,14655,14656,14657,14658,14659,
9516214660,14661,14662,14663,14664,14665,14666,14667,14668,14669,14670,14671,
9516314672,14673,14674,14675,14676,14677,14678,14679,14680,14681,14682,14683,
9516414684,14685,14686,14687,14688,14689,14690,14691,14692,14693,14694,14695,
9516514696,14697,14698,14699,14700,14701,14702,14703,14704,14705,14706,14707,
9516614708,14709,14710,14711,14712,14713,14714,14715,14716,14717,14718,14719,
9516714720,14721,14722,14723,14724,14725,14726,14727,14728,14729,14730,14731,
9516814732,14733,14734,14735,14736,14737,14738,14739,14740,14741,14742,14743,
9516914744,14745,14746,14747,14748,14749,14750,14751,14752,14753,14754,14755,
9517014756,14757,14758,14759,14760,14761,14762,14763,14764,14765,14766,14767,
9517114768,14769,14770,14771,14772,14773,14774,14775,14776,14777,14778,14779,
9517214780,14781,14782,14783,14784,14785,14786,14787,14788,14789,14790,14791,
9517314792,14793,14794,14795,14796,14797,14798,14799,14800,14801,14802,14803,
9517414804,14805,14806,14807,14808,14809,14810,14811,14812,14813,14814,14815,
9517514816,14817,14818,14819,14820,14821,14822,14823,14824,14825,14826,14827,
9517614828,14829,14830,14831,14832,14833,14834,14835,14836,14837,14838,14839,
9517714840,14841,14842,14843,14844,14845,14846,14847,14848,14849,14850,14851,
9517814852,14853,14854,14855,14856,14857,14858,14859,14860,14861,14862,14863,
9517914864,14865,14866,14867,14868,14869,14870,14871,14872,14873,14874,14875,
9518014876,14877,14878,14879,14880,14881,14882,14883,14884,14885,14886,14887,
9518114888,14889,14890,14891,14892,14893,14894,14895,14896,14897,14898,14899,
9518214900,14901,14902,14903,14904,14905,14906,14907,14908,14909,14910,14911,
9518314912,14913,14914,14915,14916,14917,14918,14919,14920,14921,14922,14923,
9518414924,14925,14926,14927,14928,14929,14930,14931,14932,14933,14934,14935,
9518514936,14937,14938,14939,14940,14941,14942,14943,14944,14945,14946,14947,
9518614948,14949,14950,14951,14952,14953,14954,14955,14956,14957,14958,14959,
9518714960,14961,14962,14963,14964,14965,14966,14967,14968,14969,14970,14971,
9518814972,14973,14974,14975,14976,14977,14978,14979,14980,14981,14982,14983,
9518914984,14985,14986,14987,14988,14989,14990,14991,14992,14993,14994,14995,
9519014996,14997,14998,14999,15000,15001,15002,15003,15004,15005,15006,15007,
9519115008,15009,15010,15011,15012,15013,15014,15015,15016,15017,15018,15019,
9519215020,15021,15022,15023,15024,15025,15026,15027,15028,15029,15030,15031,
9519315032,15033,15034,15035,15036,15037,15038,15039,15040,15041,15042,15043,
9519415044,15045,15046,15047,15048,15049,15050,15051,15052,15053,15054,15055,
9519515056,15057,15058,15059,15060,15061,15062,15063,15064,15065,15066,15067,
9519615068,15069,15070,15071,15072,15073,15074,15075,15076,15077,15078,15079,
9519715080,15081,15082,15083,15084,15085,15086,15087,15088,15089,15090,15091,
9519815092,15093,15094,15095,15096,15097,15098,15099,15100,15101,15102,15103,
9519915104,15105,15106,15107,15108,15109,15110,15111,15112,15113,15114,15115,
9520015116,15117,15118,15119,15120,15121,15122,15123,15124,15125,15126,15127,
9520115128,15129,15130,15131,15132,15133,15134,15135,15136,15137,15138,15139,
9520215140,15141,15142,15143,15144,15145,15146,15147,15148,15149,15150,15151,
9520315152,15153,15154,15155,15156,15157,15158,15159,15160,15161,15162,15163,
9520415164,15165,15166,15167,15168,15169,15170,15171,15172,15173,15174,15175,
9520515176,15177,15178,15179,15180,15181,15182,15183,15184,15185,15186,15187,
9520615188,15189,15190,15191,15192,15193,15194,15195,15196,15197,15198,15199,
9520715200,15201,15202,15203,15204,15205,15206,15207,15208,15209,15210,15211,
9520815212,15213,15214,15215,15216,15217,15218,15219,15220,15221,15222,15223,
9520915224,15225,15226,15227,15228,15229,15230,15231,15232,15233,15234,15235,
9521015236,15237,15238,15239,15240,15241,15242,15243,15244,15245,15246,15247,
9521115248,15249,15250,15251,15252,15253,15254,15255,15256,15257,15258,15259,
9521215260,15261,15262,15263,15264,15265,15266,15267,15268,15269,15270,15271,
9521315272,15273,15274,15275,15276,15277,15278,15279,15280,15281,15282,15283,
9521415284,15285,15286,15287,15288,15289,15290,15291,15292,15293,15294,15295,
9521515296,15297,15298,15299,15300,15301,15302,15303,15304,15305,15306,15307,
9521615308,15309,15310,15311,15312,15313,15314,15315,15316,15317,15318,15319,
9521715320,15321,15322,15323,15324,15325,15326,15327,15328,15329,15330,15331,
9521815332,15333,15334,15335,15336,15337,15338,15339,15340,15341,15342,15343,
9521915344,15345,15346,15347,15348,15349,15350,15351,15352,15353,15354,15355,
9522015356,15357,15358,15359,15360,15361,15362,15363,15364,15365,15366,15367,
9522115368,15369,15370,15371,15372,15373,15374,15375,15376,15377,15378,15379,
9522215380,15381,15382,15383,15384,15385,15386,15387,15388,15389,15390,15391,
9522315392,15393,15394,15395,15396,15397,15398,15399,15400,15401,15402,15403,
9522415404,15405,15406,15407,15408,15409,15410,15411,15412,15413,15414,15415,
9522515416,15417,15418,15419,15420,15421,15422,15423,15424,15425,15426,15427,
9522615428,15429,15430,15431,15432,15433,15434,15435,15436,15437,15438,15439,
9522715440,15441,15442,15443,15444,15445,15446,15447,15448,15449,15450,15451,
9522815452,15453,15454,15455,15456,15457,15458,15459,15460,15461,15462,15463,
9522915464,15465,15466,15467,15468,15469,15470,15471,15472,15473,15474,15475,
9523015476,15477,15478,15479,15480,15481,15482,15483,15484,15485,15486,15487,
9523115488,15489,15490,15491,15492,15493,15494,15495,15496,15497,15498,15499,
9523215500,15501,15502,15503,15504,15505,15506,15507,15508,15509,15510,15511,
9523315512,15513,15514,15515,15516,15517,15518,15519,15520,15521,15522,15523,
9523415524,15525,15526,15527,15528,15529,15530,15531,15532,15533,15534,15535,
9523515536,15537,15538,15539,15540,15541,15542,15543,15544,15545,15546,15547,
9523615548,15549,15550,15551,15552,15553,15554,15555,15556,15557,15558,15559,
9523715560,15561,15562,15563,15564,15565,15566,15567,15568,15569,15570,15571,
9523815572,15573,15574,15575,15576,15577,15578,15579,15580,15581,15582,15583,
9523915584,15585,15586,15587,15588,15589,15590,15591,15592,15593,15594,15595,
9524015596,15597,15598,15599,15600,15601,15602,15603,15604,15605,15606,15607,
9524115608,15609,15610,15611,15612,15613,15614,15615,15616,15617,15618,15619,
9524215620,15621,15622,15623,15624,15625,15626,15627,15628,15629,15630,15631,
9524315632,15633,15634,15635,15636,15637,15638,15639,15640,15641,15642,15643,
9524415644,15645,15646,15647,15648,15649,15650,15651,15652,15653,15654,15655,
9524515656,15657,15658,15659,15660,15661,15662,15663,15664,15665,15666,15667,
9524615668,15669,15670,15671,15672,15673,15674,15675,15676,15677,15678,15679,
9524715680,15681,15682,15683,15684,15685,15686,15687,15688,15689,15690,15691,
9524815692,15693,15694,15695,15696,15697,15698,15699,15700,15701,15702,15703,
9524915704,15705,15706,15707,15708,15709,15710,15711,15712,15713,15714,15715,
9525015716,15717,15718,15719,15720,15721,15722,15723,15724,15725,15726,15727,
9525115728,15729,15730,15731,15732,15733,15734,15735,15736,15737,15738,15739,
9525215740,15741,15742,15743,15744,15745,15746,15747,15748,15749,15750,15751,
9525315752,15753,15754,15755,15756,15757,15758,15759,15760,15761,15762,15763,
9525415764,15765,15766,15767,15768,15769,15770,15771,15772,15773,15774,15775,
9525515776,15777,15778,15779,15780,15781,15782,15783,15784,15785,15786,15787,
9525615788,15789,15790,15791,15792,15793,15794,15795,15796,15797,15798,15799,
9525715800,15801,15802,15803,15804,15805,15806,15807,15808,15809,15810,15811,
9525815812,15813,15814,15815,15816,15817,15818,15819,15820,15821,15822,15823,
9525915824,15825,15826,15827,15828,15829,15830,15831,15832,15833,15834,15835,
9526015836,15837,15838,15839,15840,15841,15842,15843,15844,15845,15846,15847,
9526115848,15849,15850,15851,15852,15853,15854,15855,15856,15857,15858,15859,
9526215860,15861,15862,15863,15864,15865,15866,15867,15868,15869,15870,15871,
9526315872,15873,15874,15875,15876,15877,15878,15879,15880,15881,15882,15883,
9526415884,15885,15886,15887,15888,15889,15890,15891,15892,15893,15894,15895,
9526515896,15897,15898,15899,15900,15901,15902,15903,15904,15905,15906,15907,
9526615908,15909,15910,15911,15912,15913,15914,15915,15916,15917,15918,15919,
9526715920,15921,15922,15923,15924,15925,15926,15927,15928,15929,15930,15931,
9526815932,15933,15934,15935,15936,15937,15938,15939,15940,15941,15942,15943,
9526915944,15945,15946,15947,15948,15949,15950,15951,15952,15953,15954,15955,
9527015956,15957,15958,15959,15960,15961,15962,15963,15964,15965,15966,15967,
9527115968,15969,15970,15971,15972,15973,15974,15975,15976,15977,15978,15979,
9527215980,15981,15982,15983,15984,15985,15986,15987,15988,15989,15990,15991,
9527315992,15993,15994,15995,15996,15997,15998,15999,16000,16001,16002,16003,
9527416004,16005,16006,16007,16008,16009,16010,16011,16012,16013,16014,16015,
9527516016,16017,16018,16019,16020,16021,16022,16023,16024,16025,16026,16027,
9527616028,16029,16030,16031,16032,16033,16034,16035,16036,16037,16038,16039,
9527716040,16041,16042,16043,16044,16045,16046,16047,16048,16049,16050,16051,
9527816052,16053,16054,16055,16056,16057,16058,16059,16060,16061,16062,16063,
9527916064,16065,16066,16067,16068,16069,16070,16071,16072,16073,16074,16075,
9528016076,16077,16078,16079,16080,16081,16082,16083,16084,16085,16086,16087,
9528116088,16089,16090,16091,16092,16093,16094,16095,16096,16097,16098,16099,
9528216100,16101,16102,16103,16104,16105,16106,16107,16108,16109,16110,16111,
9528316112,16113,16114,16115,16116,16117,16118,16119,16120,16121,16122,16123,
9528416124,16125,16126,16127,16128,16129,16130,16131,16132,16133,16134,16135,
9528516136,16137,16138,16139,16140,16141,16142,16143,16144,16145,16146,16147,
9528616148,16149,16150,16151,16152,16153,16154,16155,16156,16157,16158,16159,
9528716160,16161,16162,16163,16164,16165,16166,16167,16168,16169,16170,16171,
9528816172,16173,16174,16175,16176,16177,16178,16179,16180,16181,16182,16183,
9528916184,16185,16186,16187,16188,16189,16190,16191,16192,16193,16194,16195,
9529016196,16197,16198,16199,16200,16201,16202,16203,16204,16205,16206,16207,
9529116208,16209,16210,16211,16212,16213,16214,16215,16216,16217,16218,16219,
9529216220,16221,16222,16223,16224,16225,16226,16227,16228,16229,16230,16231,
9529316232,16233,16234,16235,16236,16237,16238,16239,16240,16241,16242,16243,
9529416244,16245,16246,16247,16248,16249,16250,16251,16252,16253,16254,16255,
9529516256,16257,16258,16259,16260,16261,16262,16263,16264,16265,16266,16267,
9529616268,16269,16270,16271,16272,16273,16274,16275,16276,16277,16278,16279,
9529716280,16281,16282,16283,16284,16285,16286,16287,16288,16289,16290,16291,
9529816292,16293,16294,16295,16296,16297,16298,16299,16300,16301,16302,16303,
9529916304,16305,16306,16307,16308,16309,16310,16311,16312,16313,16314,16315,
9530016316,16317,16318,16319,16320,16321,16322,16323,16324,16325,16326,16327,
9530116328,16329,16330,16331,16332,16333,16334,16335,16336,16337,16338,16339,
9530216340,16341,16342,16343,16344,16345,16346,16347,16348,16349,16350,16351,
9530316352,16353,16354,16355,16356,16357,16358,16359,16360,16361,16362,16363,
9530416364,16365,16366,16367,16368,16369,16370,16371,16372,16373,16374,16375,
9530516376,16377,16378,16379,16380,16381,16382,16383,16384,16385,16386,16387,
9530616388,16389,16390,16391,16392,16393,16394,16395,16396,16397,16398,16399,
9530716400,16401,16402,16403,16404,16405,16406,16407,16408,16409,16410,16411,
9530816412,16413,16414,16415,16416,16417,16418,16419,16420,16421,16422,16423,
9530916424,16425,16426,16427,16428,16429,16430,16431,16432,16433,16434,16435,
9531016436,16437,16438,16439,16440,16441,16442,16443,16444,16445,16446,16447,
9531116448,16449,16450,16451,16452,16453,16454,16455,16456,16457,16458,16459,
9531216460,16461,16462,16463,16464,16465,16466,16467,16468,16469,16470,16471,
9531316472,16473,16474,16475,16476,16477,16478,16479,16480,16481,16482,16483,
9531416484,16485,16486,16487,16488,16489,16490,16491,16492,16493,16494,16495,
9531516496,16497,16498,16499,16500,16501,16502,16503,16504,16505,16506,16507,
9531616508,16509,16510,16511,16512,16513,16514,16515,16516,16517,16518,16519,
9531716520,16521,16522,16523,16524,16525,16526,16527,16528,16529,16530,16531,
9531816532,16533,16534,16535,16536,16537,16538,16539,16540,16541,16542,16543,
9531916544,16545,16546,16547,16548,16549,16550,16551,16552,16553,16554,16555,
9532016556,16557,16558,16559,16560,16561,16562,16563,16564,16565,16566,16567,
9532116568,16569,16570,16571,16572,16573,16574,16575,16576,16577,16578,16579,
9532216580,16581,16582,16583,16584,16585,16586,16587,16588,16589,16590,16591,
9532316592,16593,16594,16595,16596,16597,16598,16599,16600,16601,16602,16603,
9532416604,16605,16606,16607,16608,16609,16610,16611,16612,16613,16614,16615,
9532516616,16617,16618,16619,16620,16621,16622,16623,16624,16625,16626,16627,
9532616628,16629,16630,16631,16632,16633,16634,16635,16636,16637,16638,16639,
9532716640,16641,16642,16643,16644,16645,16646,16647,16648,16649,16650,16651,
9532816652,16653,16654,16655,16656,16657,16658,16659,16660,16661,16662,16663,
9532916664,16665,16666,16667,16668,16669,16670,16671,16672,16673,16674,16675,
9533016676,16677,16678,16679,16680,16681,16682,16683,16684,16685,16686,16687,
9533116688,16689,16690,16691,16692,16693,16694,16695,16696,16697,16698,16699,
9533216700,16701,16702,16703,16704,16705,16706,16707,16708,16709,16710,16711,
9533316712,16713,16714,16715,16716,16717,16718,16719,16720,16721,16722,16723,
9533416724,16725,16726,16727,16728,16729,16730,16731,16732,16733,16734,16735,
9533516736,16737,16738,16739,16740,16741,16742,16743,16744,16745,16746,16747,
9533616748,16749,16750,16751,16752,16753,16754,16755,16756,16757,16758,16759,
9533716760,16761,16762,16763,16764,16765,16766,16767,16768,16769,16770,16771,
9533816772,16773,16774,16775,16776,16777,16778,16779,16780,16781,16782,16783,
9533916784,16785,16786,16787,16788,16789,16790,16791,16792,16793,16794,16795,
9534016796,16797,16798,16799,16800,16801,16802,16803,16804,16805,16806,16807,
9534116808,16809,16810,16811,16812,16813,16814,16815,16816,16817,16818,16819,
9534216820,16821,16822,16823,16824,16825,16826,16827,16828,16829,16830,16831,
9534316832,16833,16834,16835,16836,16837,16838,16839,16840,16841,16842,16843,
9534416844,16845,16846,16847,16848,16849,16850,16851,16852,16853,16854,16855,
9534516856,16857,16858,16859,16860,16861,16862,16863,16864,16865,16866,16867,
9534616868,16869,16870,16871,16872,16873,16874,16875,16876,16877,16878,16879,
9534716880,16881,16882,16883,16884,16885,16886,16887,16888,16889,16890,16891,
9534816892,16893,16894,16895,16896,16897,16898,16899,16900,16901,16902,16903,
9534916904,16905,16906,16907,16908,16909,16910,16911,16912,16913,16914,16915,
9535016916,16917,16918,16919,16920,16921,16922,16923,16924,16925,16926,16927,
9535116928,16929,16930,16931,16932,16933,16934,16935,16936,16937,16938,16939,
9535216940,16941,16942,16943,16944,16945,16946,16947,16948,16949,16950,16951,
9535316952,16953,16954,16955,16956,16957,16958,16959,16960,16961,16962,16963,
9535416964,16965,16966,16967,16968,16969,16970,16971,16972,16973,16974,16975,
9535516976,16977,16978,16979,16980,16981,16982,16983,16984,16985,16986,16987,
9535616988,16989,16990,16991,16992,16993,16994,16995,16996,16997,16998,16999,
9535717000,17001,17002,17003,17004,17005,17006,17007,17008,17009,17010,17011,
9535817012,17013,17014,17015,17016,17017,17018,17019,17020,17021,17022,17023,
9535917024,17025,17026,17027,17028,17029,17030,17031,17032,17033,17034,17035,
9536017036,17037,17038,17039,17040,17041,17042,17043,17044,17045,17046,17047,
9536117048,17049,17050,17051,17052,17053,17054,17055,17056,17057,17058,17059,
9536217060,17061,17062,17063,17064,17065,17066,17067,17068,17069,17070,17071,
9536317072,17073,17074,17075,17076,17077,17078,17079,17080,17081,17082,17083,
9536417084,17085,17086,17087,17088,17089,17090,17091,17092,17093,17094,17095,
9536517096,17097,17098,17099,17100,17101,17102,17103,17104,17105,17106,17107,
9536617108,17109,17110,17111,17112,17113,17114,17115,17116,17117,17118,17119,
9536717120,17121,17122,17123,17124,17125,17126,17127,17128,17129,17130,17131,
9536817132,17133,17134,17135,17136,17137,17138,17139,17140,17141,17142,17143,
9536917144,17145,17146,17147,17148,17149,17150,17151,17152,17153,17154,17155,
9537017156,17157,17158,17159,17160,17161,17162,17163,17164,17165,17166,17167,
9537117168,17169,17170,17171,17172,17173,17174,17175,17176,17177,17178,17179,
9537217180,17181,17182,17183,17184,17185,17186,17187,17188,17189,17190,17191,
9537317192,17193,17194,17195,17196,17197,17198,17199,17200,17201,17202,17203,
9537417204,17205,17206,17207,17208,17209,17210,17211,17212,17213,17214,17215,
9537517216,17217,17218,17219,17220,17221,17222,17223,17224,17225,17226,17227,
9537617228,17229,17230,17231,17232,17233,17234,17235,17236,17237,17238,17239,
9537717240,17241,17242,17243,17244,17245,17246,17247,17248,17249,17250,17251,
9537817252,17253,17254,17255,17256,17257,17258,17259,17260,17261,17262,17263,
9537917264,17265,17266,17267,17268,17269,17270,17271,17272,17273,17274,17275,
9538017276,17277,17278,17279,17280,17281,17282,17283,17284,17285,17286,17287,
9538117288,17289,17290,17291,17292,17293,17294,17295,17296,17297,17298,17299,
9538217300,17301,17302,17303,17304,17305,17306,17307,17308,17309,17310,17311,
9538317312,17313,17314,17315,17316,17317,17318,17319,17320,17321,17322,17323,
9538417324,17325,17326,17327,17328,17329,17330,17331,17332,17333,17334,17335,
9538517336,17337,17338,17339,17340,17341,17342,17343,17344,17345,17346,17347,
9538617348,17349,17350,17351,17352,17353,17354,17355,17356,17357,17358,17359,
9538717360,17361,17362,17363,17364,17365,17366,17367,17368,17369,17370,17371,
9538817372,17373,17374,17375,17376,17377,17378,17379,17380,17381,17382,17383,
9538917384,17385,17386,17387,17388,17389,17390,17391,17392,17393,17394,17395,
9539017396,17397,17398,17399,17400,17401,17402,17403,17404,17405,17406,17407,
9539117408,17409,17410,17411,17412,17413,17414,17415,17416,17417,17418,17419,
9539217420,17421,17422,17423,17424,17425,17426,17427,17428,17429,17430,17431,
9539317432,17433,17434,17435,17436,17437,17438,17439,17440,17441,17442,17443,
9539417444,17445,17446,17447,17448,17449,17450,17451,17452,17453,17454,17455,
9539517456,17457,17458,17459,17460,17461,17462,17463,17464,17465,17466,17467,
9539617468,17469,17470,17471,17472,17473,17474,17475,17476,17477,17478,17479,
9539717480,17481,17482,17483,17484,17485,17486,17487,17488,17489,17490,17491,
9539817492,17493,17494,17495,17496,17497,17498,17499,17500,17501,17502,17503,
9539917504,17505,17506,17507,17508,17509,17510,17511,17512,17513,17514,17515,
9540017516,17517,17518,17519,17520,17521,17522,17523,17524,17525,17526,17527,
9540117528,17529,17530,17531,17532,17533,17534,17535,17536,17537,17538,17539,
9540217540,17541,17542,17543,17544,17545,17546,17547,17548,17549,17550,17551,
9540317552,17553,17554,17555,17556,17557,17558,17559,17560,17561,17562,17563,
9540417564,17565,17566,17567,17568,17569,17570,17571,17572,17573,17574,17575,
9540517576,17577,17578,17579,17580,17581,17582,17583,17584,17585,17586,17587,
9540617588,17589,17590,17591,17592,17593,17594,17595,17596,17597,17598,17599,
9540717600,17601,17602,17603,17604,17605,17606,17607,17608,17609,17610,17611,
9540817612,17613,17614,17615,17616,17617,17618,17619,17620,17621,17622,17623,
9540917624,17625,17626,17627,17628,17629,17630,17631,17632,17633,17634,17635,
9541017636,17637,17638,17639,17640,17641,17642,17643,17644,17645,17646,17647,
9541117648,17649,17650,17651,17652,17653,17654,17655,17656,17657,17658,17659,
9541217660,17661,17662,17663,17664,17665,17666,17667,17668,17669,17670,17671,
9541317672,17673,17674,17675,17676,17677,17678,17679,17680,17681,17682,17683,
9541417684,17685,17686,17687,17688,17689,17690,17691,17692,17693,17694,17695,
9541517696,17697,17698,17699,17700,17701,17702,17703,17704,17705,17706,17707,
9541617708,17709,17710,17711,17712,17713,17714,17715,17716,17717,17718,17719,
9541717720,17721,17722,17723,17724,17725,17726,17727,17728,17729,17730,17731,
9541817732,17733,17734,17735,17736,17737,17738,17739,17740,17741,17742,17743,
9541917744,17745,17746,17747,17748,17749,17750,17751,17752,17753,17754,17755,
9542017756,17757,17758,17759,17760,17761,17762,17763,17764,17765,17766,17767,
9542117768,17769,17770,17771,17772,17773,17774,17775,17776,17777,17778,17779,
9542217780,17781,17782,17783,17784,17785,17786,17787,17788,17789,17790,17791,
9542317792,17793,17794,17795,17796,17797,17798,17799,17800,17801,17802,17803,
9542417804,17805,17806,17807,17808,17809,17810,17811,17812,17813,17814,17815,
9542517816,17817,17818,17819,17820,17821,17822,17823,17824,17825,17826,17827,
9542617828,17829,17830,17831,17832,17833,17834,17835,17836,17837,17838,17839,
9542717840,17841,17842,17843,17844,17845,17846,17847,17848,17849,17850,17851,
9542817852,17853,17854,17855,17856,17857,17858,17859,17860,17861,17862,17863,
9542917864,17865,17866,17867,17868,17869,17870,17871,17872,17873,17874,17875,
9543017876,17877,17878,17879,17880,17881,17882,17883,17884,17885,17886,17887,
9543117888,17889,17890,17891,17892,17893,17894,17895,17896,17897,17898,17899,
9543217900,17901,17902,17903,17904,17905,17906,17907,17908,17909,17910,17911,
9543317912,17913,17914,17915,17916,17917,17918,17919,17920,17921,17922,17923,
9543417924,17925,17926,17927,17928,17929,17930,17931,17932,17933,17934,17935,
9543517936,17937,17938,17939,17940,17941,17942,17943,17944,17945,17946,17947,
9543617948,17949,17950,17951,17952,17953,17954,17955,17956,17957,17958,17959,
9543717960,17961,17962,17963,17964,17965,17966,17967,17968,17969,17970,17971,
9543817972,17973,17974,17975,17976,17977,17978,17979,17980,17981,17982,17983,
9543917984,17985,17986,17987,17988,17989,17990,17991,17992,17993,17994,17995,
9544017996,17997,17998,17999,18000,18001,18002,18003,18004,18005,18006,18007,
9544118008,18009,18010,18011,18012,18013,18014,18015,18016,18017,18018,18019,
9544218020,18021,18022,18023,18024,18025,18026,18027,18028,18029,18030,18031,
9544318032,18033,18034,18035,18036,18037,18038,18039,18040,18041,18042,18043,
9544418044,18045,18046,18047,18048,18049,18050,18051,18052,18053,18054,18055,
9544518056,18057,18058,18059,18060,18061,18062,18063,18064,18065,18066,18067,
9544618068,18069,18070,18071,18072,18073,18074,18075,18076,18077,18078,18079,
9544718080,18081,18082,18083,18084,18085,18086,18087,18088,18089,18090,18091,
9544818092,18093,18094,18095,18096,18097,18098,18099,18100,18101,18102,18103,
9544918104,18105,18106,18107,18108,18109,18110,18111,18112,18113,18114,18115,
9545018116,18117,18118,18119,18120,18121,18122,18123,18124,18125,18126,18127,
9545118128,18129,18130,18131,18132,18133,18134,18135,18136,18137,18138,18139,
9545218140,18141,18142,18143,18144,18145,18146,18147,18148,18149,18150,18151,
9545318152,18153,18154,18155,18156,18157,18158,18159,18160,18161,18162,18163,
9545418164,18165,18166,18167,18168,18169,18170,18171,18172,18173,18174,18175,
9545518176,18177,18178,18179,18180,18181,18182,18183,18184,18185,18186,18187,
9545618188,18189,18190,18191,18192,18193,18194,18195,18196,18197,18198,18199,
9545718200,18201,18202,18203,18204,18205,18206,18207,18208,18209,18210,18211,
9545818212,18213,18214,18215,18216,18217,18218,18219,18220,18221,18222,18223,
9545918224,18225,18226,18227,18228,18229,18230,18231,18232,18233,18234,18235,
9546018236,18237,18238,18239,18240,18241,18242,18243,18244,18245,18246,18247,
9546118248,18249,18250,18251,18252,18253,18254,18255,18256,18257,18258,18259,
9546218260,18261,18262,18263,18264,18265,18266,18267,18268,18269,18270,18271,
9546318272,18273,18274,18275,18276,18277,18278,18279,18280,18281,18282,18283,
9546418284,18285,18286,18287,18288,18289,18290,18291,18292,18293,18294,18295,
9546518296,18297,18298,18299,18300,18301,18302,18303,18304,18305,18306,18307,
9546618308,18309,18310,18311,18312,18313,18314,18315,18316,18317,18318,18319,
9546718320,18321,18322,18323,18324,18325,18326,18327,18328,18329,18330,18331,
9546818332,18333,18334,18335,18336,18337,18338,18339,18340,18341,18342,18343,
9546918344,18345,18346,18347,18348,18349,18350,18351,18352,18353,18354,18355,
9547018356,18357,18358,18359,18360,18361,18362,18363,18364,18365,18366,18367,
9547118368,18369,18370,18371,18372,18373,18374,18375,18376,18377,18378,18379,
9547218380,18381,18382,18383,18384,18385,18386,18387,18388,18389,18390,18391,
9547318392,18393,18394,18395,18396,18397,18398,18399,18400,18401,18402,18403,
9547418404,18405,18406,18407,18408,18409,18410,18411,18412,18413,18414,18415,
9547518416,18417,18418,18419,18420,18421,18422,18423,18424,18425,18426,18427,
9547618428,18429,18430,18431,18432,18433,18434,18435,18436,18437,18438,18439,
9547718440,18441,18442,18443,18444,18445,18446,18447,18448,18449,18450,18451,
9547818452,18453,18454,18455,18456,18457,18458,18459,18460,18461,18462,18463,
9547918464,18465,18466,18467,18468,18469,18470,18471,18472,18473,18474,18475,
9548018476,18477,18478,18479,18480,18481,18482,18483,18484,18485,18486,18487,
9548118488,18489,18490,18491,18492,18493,18494,18495,18496,18497,18498,18499,
9548218500,18501,18502,18503,18504,18505,18506,18507,18508,18509,18510,18511,
9548318512,18513,18514,18515,18516,18517,18518,18519,18520,18521,18522,18523,
9548418524,18525,18526,18527,18528,18529,18530,18531,18532,18533,18534,18535,
9548518536,18537,18538,18539,18540,18541,18542,18543,18544,18545,18546,18547,
9548618548,18549,18550,18551,18552,18553,18554,18555,18556,18557,18558,18559,
9548718560,18561,18562,18563,18564,18565,18566,18567,18568,18569,18570,18571,
9548818572,18573,18574,18575,18576,18577,18578,18579,18580,18581,18582,18583,
9548918584,18585,18586,18587,18588,18589,18590,18591,18592,18593,18594,18595,
9549018596,18597,18598,18599,18600,18601,18602,18603,18604,18605,18606,18607,
9549118608,18609,18610,18611,18612,18613,18614,18615,18616,18617,18618,18619,
9549218620,18621,18622,18623,18624,18625,18626,18627,18628,18629,18630,18631,
9549318632,18633,18634,18635,18636,18637,18638,18639,18640,18641,18642,18643,
9549418644,18645,18646,18647,18648,18649,18650,18651,18652,18653,18654,18655,
9549518656,18657,18658,18659,18660,18661,18662,18663,18664,18665,18666,18667,
9549618668,18669,18670,18671,18672,18673,18674,18675,18676,18677,18678,18679,
9549718680,18681,18682,18683,18684,18685,18686,18687,18688,18689,18690,18691,
9549818692,18693,18694,18695,18696,18697,18698,18699,18700,18701,18702,18703,
9549918704,18705,18706,18707,18708,18709,18710,18711,18712,18713,18714,18715,
9550018716,18717,18718,18719,18720,18721,18722,18723,18724,18725,18726,18727,
9550118728,18729,18730,18731,18732,18733,18734,18735,18736,18737,18738,18739,
9550218740,18741,18742,18743,18744,18745,18746,18747,18748,18749,18750,18751,
9550318752,18753,18754,18755,18756,18757,18758,18759,18760,18761,18762,18763,
9550418764,18765,18766,18767,18768,18769,18770,18771,18772,18773,18774,18775,
9550518776,18777,18778,18779,18780,18781,18782,18783,18784,18785,18786,18787,
9550618788,18789,18790,18791,18792,18793,18794,18795,18796,18797,18798,18799,
9550718800,18801,18802,18803,18804,18805,18806,18807,18808,18809,18810,18811,
9550818812,18813,18814,18815,18816,18817,18818,18819,18820,18821,18822,18823,
9550918824,18825,18826,18827,18828,18829,18830,18831,18832,18833,18834,18835,
9551018836,18837,18838,18839,18840,18841,18842,18843,18844,18845,18846,18847,
9551118848,18849,18850,18851,18852,18853,18854,18855,18856,18857,18858,18859,
9551218860,18861,18862,18863,18864,18865,18866,18867,18868,18869,18870,18871,
9551318872,18873,18874,18875,18876,18877,18878,18879,18880,18881,18882,18883,
9551418884,18885,18886,18887,18888,18889,18890,18891,18892,18893,18894,18895,
9551518896,18897,18898,18899,18900,18901,18902,18903,18904,18905,18906,18907,
9551618908,18909,18910,18911,18912,18913,18914,18915,18916,18917,18918,18919,
9551718920,18921,18922,18923,18924,18925,18926,18927,18928,18929,18930,18931,
9551818932,18933,18934,18935,18936,18937,18938,18939,18940,18941,18942,18943,
9551918944,18945,18946,18947,18948,18949,18950,18951,18952,18953,18954,18955,
9552018956,18957,18958,18959,18960,18961,18962,18963,18964,18965,18966,18967,
9552118968,18969,18970,18971,18972,18973,18974,18975,18976,18977,18978,18979,
9552218980,18981,18982,18983,18984,18985,18986,18987,18988,18989,18990,18991,
9552318992,18993,18994,18995,18996,18997,18998,18999,19000,19001,19002,19003,
9552419004,19005,19006,19007,19008,19009,19010,19011,19012,19013,19014,19015,
9552519016,19017,19018,19019,19020,19021,19022,19023,19024,19025,19026,19027,
9552619028,19029,19030,19031,19032,19033,19034,19035,19036,19037,19038,19039,
9552719040,19041,19042,19043,19044,19045,19046,19047,19048,19049,19050,19051,
9552819052,19053,19054,19055,19056,19057,19058,19059,19060,19061,19062,19063,
9552919064,19065,19066,19067,19068,19069,19070,19071,19072,19073,19074,19075,
9553019076,19077,19078,19079,19080,19081,19082,19083,19084,19085,19086,19087,
9553119088,19089,19090,19091,19092,19093,19094,19095,19096,19097,19098,19099,
9553219100,19101,19102,19103,19104,19105,19106,19107,19108,19109,19110,19111,
9553319112,19113,19114,19115,19116,19117,19118,19119,19120,19121,19122,19123,
9553419124,19125,19126,19127,19128,19129,19130,19131,19132,19133,19134,19135,
9553519136,19137,19138,19139,19140,19141,19142,19143,19144,19145,19146,19147,
9553619148,19149,19150,19151,19152,19153,19154,19155,19156,19157,19158,19159,
9553719160,19161,19162,19163,19164,19165,19166,19167,19168,19169,19170,19171,
9553819172,19173,19174,19175,19176,19177,19178,19179,19180,19181,19182,19183,
9553919184,19185,19186,19187,19188,19189,19190,19191,19192,19193,19194,19195,
9554019196,19197,19198,19199,19200,19201,19202,19203,19204,19205,19206,19207,
9554119208,19209,19210,19211,19212,19213,19214,19215,19216,19217,19218,19219,
9554219220,19221,19222,19223,19224,19225,19226,19227,19228,19229,19230,19231,
9554319232,19233,19234,19235,19236,19237,19238,19239,19240,19241,19242,19243,
9554419244,19245,19246,19247,19248,19249,19250,19251,19252,19253,19254,19255,
9554519256,19257,19258,19259,19260,19261,19262,19263,19264,19265,19266,19267,
9554619268,19269,19270,19271,19272,19273,19274,19275,19276,19277,19278,19279,
9554719280,19281,19282,19283,19284,19285,19286,19287,19288,19289,19290,19291,
9554819292,19293,19294,19295,19296,19297,19298,19299,19300,19301,19302,19303,
9554919304,19305,19306,19307,19308,19309,19310,19311,19312,19313,19314,19315,
9555019316,19317,19318,19319,19320,19321,19322,19323,19324,19325,19326,19327,
9555119328,19329,19330,19331,19332,19333,19334,19335,19336,19337,19338,19339,
9555219340,19341,19342,19343,19344,19345,19346,19347,19348,19349,19350,19351,
9555319352,19353,19354,19355,19356,19357,19358,19359,19360,19361,19362,19363,
9555419364,19365,19366,19367,19368,19369,19370,19371,19372,19373,19374,19375,
9555519376,19377,19378,19379,19380,19381,19382,19383,19384,19385,19386,19387,
9555619388,19389,19390,19391,19392,19393,19394,19395,19396,19397,19398,19399,
9555719400,19401,19402,19403,19404,19405,19406,19407,19408,19409,19410,19411,
9555819412,19413,19414,19415,19416,19417,19418,19419,19420,19421,19422,19423,
9555919424,19425,19426,19427,19428,19429,19430,19431,19432,19433,19434,19435,
9556019436,19437,19438,19439,19440,19441,19442,19443,19444,19445,19446,19447,
9556119448,19449,19450,19451,19452,19453,19454,19455,19456,19457,19458,19459,
9556219460,19461,19462,19463,19464,19465,19466,19467,19468,19469,19470,19471,
9556319472,19473,19474,19475,19476,19477,19478,19479,19480,19481,19482,19483,
9556419484,19485,19486,19487,19488,19489,19490,19491,19492,19493,19494,19495,
9556519496,19497,19498,19499,19500,19501,19502,19503,19504,19505,19506,19507,
9556619508,19509,19510,19511,19512,19513,19514,19515,19516,19517,19518,19519,
9556719520,19521,19522,19523,19524,19525,19526,19527,19528,19529,19530,19531,
9556819532,19533,19534,19535,19536,19537,19538,19539,19540,19541,19542,19543,
9556919544,19545,19546,19547,19548,19549,19550,19551,19552,19553,19554,19555,
9557019556,19557,19558,19559,19560,19561,19562,19563,19564,19565,19566,19567,
9557119568,19569,19570,19571,19572,19573,19574,19575,19576,19577,19578,19579,
9557219580,19581,19582,19583,19584,19585,19586,19587,19588,19589,19590,19591,
9557319592,19593,19594,19595,19596,19597,19598,19599,19600,19601,19602,19603,
9557419604,19605,19606,19607,19608,19609,19610,19611,19612,19613,19614,19615,
9557519616,19617,19618,19619,19620,19621,19622,19623,19624,19625,19626,19627,
9557619628,19629,19630,19631,19632,19633,19634,19635,19636,19637,19638,19639,
9557719640,19641,19642,19643,19644,19645,19646,19647,19648,19649,19650,19651,
9557819652,19653,19654,19655,19656,19657,19658,19659,19660,19661,19662,19663,
9557919664,19665,19666,19667,19668,19669,19670,19671,19672,19673,19674,19675,
9558019676,19677,19678,19679,19680,19681,19682,19683,19684,19685,19686,19687,
9558119688,19689,19690,19691,19692,19693,19694,19695,19696,19697,19698,19699,
9558219700,19701,19702,19703,19704,19705,19706,19707,19708,19709,19710,19711,
9558319712,19713,19714,19715,19716,19717,19718,19719,19720,19721,19722,19723,
9558419724,19725,19726,19727,19728,19729,19730,19731,19732,19733,19734,19735,
9558519736,19737,19738,19739,19740,19741,19742,19743,19744,19745,19746,19747,
9558619748,19749,19750,19751,19752,19753,19754,19755,19756,19757,19758,19759,
9558719760,19761,19762,19763,19764,19765,19766,19767,19768,19769,19770,19771,
9558819772,19773,19774,19775,19776,19777,19778,19779,19780,19781,19782,19783,
9558919784,19785,19786,19787,19788,19789,19790,19791,19792,19793,19794,19795,
9559019796,19797,19798,19799,19800,19801,19802,19803,19804,19805,19806,19807,
9559119808,19809,19810,19811,19812,19813,19814,19815,19816,19817,19818,19819,
9559219820,19821,19822,19823,19824,19825,19826,19827,19828,19829,19830,19831,
9559319832,19833,19834,19835,19836,19837,19838,19839,19840,19841,19842,19843,
9559419844,19845,19846,19847,19848,19849,19850,19851,19852,19853,19854,19855,
9559519856,19857,19858,19859,19860,19861,19862,19863,19864,19865,19866,19867,
9559619868,19869,19870,19871,19872,19873,19874,19875,19876,19877,19878,19879,
9559719880,19881,19882,19883,19884,19885,19886,19887,19888,19889,19890,19891,
9559819892,19893,19894,19895,19896,19897,19898,19899,19900,19901,19902,19903,
9559919904,19905,19906,19907,19908,19909,19910,19911,19912,19913,19914,19915,
9560019916,19917,19918,19919,19920,19921,19922,19923,19924,19925,19926,19927,
9560119928,19929,19930,19931,19932,19933,19934,19935,19936,19937,19938,19939,
9560219940,19941,19942,19943,19944,19945,19946,19947,19948,19949,19950,19951,
9560319952,19953,19954,19955,19956,19957,19958,19959,19960,19961,19962,19963,
9560419964,19965,19966,19967,19968,19969,19970,19971,19972,19973,19974,19975,
9560519976,19977,19978,19979,19980,19981,19982,19983,19984,19985,19986,19987,
9560619988,19989,19990,19991,19992,19993,19994,19995,19996,19997,19998,19999,
9560720000,20001,20002,20003,20004,20005,20006,20007,20008,20009,20010,20011,
9560820012,20013,20014,20015,20016,20017,20018,20019,20020,20021,20022,20023,
9560920024,20025,20026,20027,20028,20029,20030,20031,20032,20033,20034,20035,
9561020036,20037,20038,20039,20040,20041,20042,20043,20044,20045,20046,20047,
9561120048,20049,20050,20051,20052,20053,20054,20055,20056,20057,20058,20059,
9561220060,20061,20062,20063,20064,20065,20066,20067,20068,20069,20070,20071,
9561320072,20073,20074,20075,20076,20077,20078,20079,20080,20081,20082,20083,
9561420084,20085,20086,20087,20088,20089,20090,20091,20092,20093,20094,20095,
9561520096,20097,20098,20099,20100,20101,20102,20103,20104,20105,20106,20107,
9561620108,20109,20110,20111,20112,20113,20114,20115,20116,20117,20118,20119,
9561720120,20121,20122,20123,20124,20125,20126,20127,20128,20129,20130,20131,
9561820132,20133,20134,20135,20136,20137,20138,20139,20140,20141,20142,20143,
9561920144,20145,20146,20147,20148,20149,20150,20151,20152,20153,20154,20155,
9562020156,20157,20158,20159,20160,20161,20162,20163,20164,20165,20166,20167,
9562120168,20169,20170,20171,20172,20173,20174,20175,20176,20177,20178,20179,
9562220180,20181,20182,20183,20184,20185,20186,20187,20188,20189,20190,20191,
9562320192,20193,20194,20195,20196,20197,20198,20199,20200,20201,20202,20203,
9562420204,20205,20206,20207,20208,20209,20210,20211,20212,20213,20214,20215,
9562520216,20217,20218,20219,20220,20221,20222,20223,20224,20225,20226,20227,
9562620228,20229,20230,20231,20232,20233,20234,20235,20236,20237,20238,20239,
9562720240,20241,20242,20243,20244,20245,20246,20247,20248,20249,20250,20251,
9562820252,20253,20254,20255,20256,20257,20258,20259,20260,20261,20262,20263,
9562920264,20265,20266,20267,20268,20269,20270,20271,20272,20273,20274,20275,
9563020276,20277,20278,20279,20280,20281,20282,20283,20284,20285,20286,20287,
9563120288,20289,20290,20291,20292,20293,20294,20295,20296,20297,20298,20299,
9563220300,20301,20302,20303,20304,20305,20306,20307,20308,20309,20310,20311,
9563320312,20313,20314,20315,20316,20317,20318,20319,20320,20321,20322,20323,
9563420324,20325,20326,20327,20328,20329,20330,20331,20332,20333,20334,20335,
9563520336,20337,20338,20339,20340,20341,20342,20343,20344,20345,20346,20347,
9563620348,20349,20350,20351,20352,20353,20354,20355,20356,20357,20358,20359,
9563720360,20361,20362,20363,20364,20365,20366,20367,20368,20369,20370,20371,
9563820372,20373,20374,20375,20376,20377,20378,20379,20380,20381,20382,20383,
9563920384,20385,20386,20387,20388,20389,20390,20391,20392,20393,20394,20395,
9564020396,20397,20398,20399,20400,20401,20402,20403,20404,20405,20406,20407,
9564120408,20409,20410,20411,20412,20413,20414,20415,20416,20417,20418,20419,
9564220420,20421,20422,20423,20424,20425,20426,20427,20428,20429,20430,20431,
9564320432,20433,20434,20435,20436,20437,20438,20439,20440,20441,20442,20443,
9564420444,20445,20446,20447,20448,20449,20450,20451,20452,20453,20454,20455,
9564520456,20457,20458,20459,20460,20461,20462,20463,20464,20465,20466,20467,
9564620468,20469,20470,20471,20472,20473,20474,20475,20476,20477,20478,20479,
9564720480,20481,20482,20483,20484,20485,20486,20487,20488,20489,20490,20491,
9564820492,20493,20494,20495,20496,20497,20498,20499,20500,20501,20502,20503,
9564920504,20505,20506,20507,20508,20509,20510,20511,20512,20513,20514,20515,
9565020516,20517,20518,20519,20520,20521,20522,20523,20524,20525,20526,20527,
9565120528,20529,20530,20531,20532,20533,20534,20535,20536,20537,20538,20539,
9565220540,20541,20542,20543,20544,20545,20546,20547,20548,20549,20550,20551,
9565320552,20553,20554,20555,20556,20557,20558,20559,20560,20561,20562,20563,
9565420564,20565,20566,20567,20568,20569,20570,20571,20572,20573,20574,20575,
9565520576,20577,20578,20579,20580,20581,20582,20583,20584,20585,20586,20587,
9565620588,20589,20590,20591,20592,20593,20594,20595,20596,20597,20598,20599,
9565720600,20601,20602,20603,20604,20605,20606,20607,20608,20609,20610,20611,
9565820612,20613,20614,20615,20616,20617,20618,20619,20620,20621,20622,20623,
9565920624,20625,20626,20627,20628,20629,20630,20631,20632,20633,20634,20635,
9566020636,20637,20638,20639,20640,20641,20642,20643,20644,20645,20646,20647,
9566120648,20649,20650,20651,20652,20653,20654,20655,20656,20657,20658,20659,
9566220660,20661,20662,20663,20664,20665,20666,20667,20668,20669,20670,20671,
9566320672,20673,20674,20675,20676,20677,20678,20679,20680,20681,20682,20683,
9566420684,20685,20686,20687,20688,20689,20690,20691,20692,20693,20694,20695,
9566520696,20697,20698,20699,20700,20701,20702,20703,20704,20705,20706,20707,
9566620708,20709,20710,20711,20712,20713,20714,20715,20716,20717,20718,20719,
9566720720,20721,20722,20723,20724,20725,20726,20727,20728,20729,20730,20731,
9566820732,20733,20734,20735,20736,20737,20738,20739,20740,20741,20742,20743,
9566920744,20745,20746,20747,20748,20749,20750,20751,20752,20753,20754,20755,
9567020756,20757,20758,20759,20760,20761,20762,20763,20764,20765,20766,20767,
9567120768,20769,20770,20771,20772,20773,20774,20775,20776,20777,20778,20779,
9567220780,20781,20782,20783,20784,20785,20786,20787,20788,20789,20790,20791,
9567320792,20793,20794,20795,20796,20797,20798,20799,20800,20801,20802,20803,
9567420804,20805,20806,20807,20808,20809,20810,20811,20812,20813,20814,20815,
9567520816,20817,20818,20819,20820,20821,20822,20823,20824,20825,20826,20827,
9567620828,20829,20830,20831,20832,20833,20834,20835,20836,20837,20838,20839,
9567720840,20841,20842,20843,20844,20845,20846,20847,20848,20849,20850,20851,
9567820852,20853,20854,20855,20856,20857,20858,20859,20860,20861,20862,20863,
9567920864,20865,20866,20867,20868,20869,20870,20871,20872,20873,20874,20875,
9568020876,20877,20878,20879,20880,20881,20882,20883,20884,20885,20886,20887,
9568120888,20889,20890,20891,20892,20893,20894,20895,20896,20897,20898,20899,
9568220900,20901,20902,20903,20904,20905,20906,20907,20908,20909,20910,20911,
9568320912,20913,20914,20915,20916,20917,20918,20919,20920,20921,20922,20923,
9568420924,20925,20926,20927,20928,20929,20930,20931,20932,20933,20934,20935,
9568520936,20937,20938,20939,20940,20941,20942,20943,20944,20945,20946,20947,
9568620948,20949,20950,20951,20952,20953,20954,20955,20956,20957,20958,20959,
9568720960,20961,20962,20963,20964,20965,20966,20967,20968,20969,20970,20971,
9568820972,20973,20974,20975,20976,20977,20978,20979,20980,20981,20982,20983,
9568920984,20985,20986,20987,20988,20989,20990,20991,20992,20993,20994,20995,
9569020996,20997,20998,20999,21000,21001,21002,21003,21004,21005,21006,21007,
9569121008,21009,21010,21011,21012,21013,21014,21015,21016,21017,21018,21019,
9569221020,21021,21022,21023,21024,21025,21026,21027,21028,21029,21030,21031,
9569321032,21033,21034,21035,21036,21037,21038,21039,21040,21041,21042,21043,
9569421044,21045,21046,21047,21048,21049,21050,21051,21052,21053,21054,21055,
9569521056,21057,21058,21059,21060,21061,21062,21063,21064,21065,21066,21067,
9569621068,21069,21070,21071,21072,21073,21074,21075,21076,21077,21078,21079,
9569721080,21081,21082,21083,21084,21085,21086,21087,21088,21089,21090,21091,
9569821092,21093,21094,21095,21096,21097,21098,21099,21100,21101,21102,21103,
9569921104,21105,21106,21107,21108,21109,21110,21111,21112,21113,21114,21115,
9570021116,21117,21118,21119,21120,21121,21122,21123,21124,21125,21126,21127,
9570121128,21129,21130,21131,21132,21133,21134,21135,21136,21137,21138,21139,
9570221140,21141,21142,21143,21144,21145,21146,21147,21148,21149,21150,21151,
9570321152,21153,21154,21155,21156,21157,21158,21159,21160,21161,21162,21163,
9570421164,21165,21166,21167,21168,21169,21170,21171,21172,21173,21174,21175,
9570521176,21177,21178,21179,21180,21181,21182,21183,21184,21185,21186,21187,
9570621188,21189,21190,21191,21192,21193,21194,21195,21196,21197,21198,21199,
9570721200,21201,21202,21203,21204,21205,21206,21207,21208,21209,21210,21211,
9570821212,21213,21214,21215,21216,21217,21218,21219,21220,21221,21222,21223,
9570921224,21225,21226,21227,21228,21229,21230,21231,21232,21233,21234,21235,
9571021236,21237,21238,21239,21240,21241,21242,21243,21244,21245,21246,21247,
9571121248,21249,21250,21251,21252,21253,21254,21255,21256,21257,21258,21259,
9571221260,21261,21262,21263,21264,21265,21266,21267,21268,21269,21270,21271,
9571321272,21273,21274,21275,21276,21277,21278,21279,21280,21281,21282,21283,
9571421284,21285,21286,21287,21288,21289,21290,21291,21292,21293,21294,21295,
9571521296,21297,21298,21299,21300,21301,21302,21303,21304,21305,21306,21307,
9571621308,21309,21310,21311,21312,21313,21314,21315,21316,21317,21318,21319,
9571721320,21321,21322,21323,21324,21325,21326,21327,21328,21329,21330,21331,
9571821332,21333,21334,21335,21336,21337,21338,21339,21340,21341,21342,21343,
9571921344,21345,21346,21347,21348,21349,21350,21351,21352,21353,21354,21355,
9572021356,21357,21358,21359,21360,21361,21362,21363,21364,21365,21366,21367,
9572121368,21369,21370,21371,21372,21373,21374,21375,21376,21377,21378,21379,
9572221380,21381,21382,21383,21384,21385,21386,21387,21388,21389,21390,21391,
9572321392,21393,21394,21395,21396,21397,21398,21399,21400,21401,21402,21403,
9572421404,21405,21406,21407,21408,21409,21410,21411,21412,21413,21414,21415,
9572521416,21417,21418,21419,21420,21421,21422,21423,21424,21425,21426,21427,
9572621428,21429,21430,21431,21432,21433,21434,21435,21436,21437,21438,21439,
9572721440,21441,21442,21443,21444,21445,21446,21447,21448,21449,21450,21451,
9572821452,21453,21454,21455,21456,21457,21458,21459,21460,21461,21462,21463,
9572921464,21465,21466,21467,21468,21469,21470,21471,21472,21473,21474,21475,
9573021476,21477,21478,21479,21480,21481,21482,21483,21484,21485,21486,21487,
9573121488,21489,21490,21491,21492,21493,21494,21495,21496,21497,21498,21499,
9573221500,21501,21502,21503,21504,21505,21506,21507,21508,21509,21510,21511,
9573321512,21513,21514,21515,21516,21517,21518,21519,21520,21521,21522,21523,
9573421524,21525,21526,21527,21528,21529,21530,21531,21532,21533,21534,21535,
9573521536,21537,21538,21539,21540,21541,21542,21543,21544,21545,21546,21547,
9573621548,21549,21550,21551,21552,21553,21554,21555,21556,21557,21558,21559,
9573721560,21561,21562,21563,21564,21565,21566,21567,21568,21569,21570,21571,
9573821572,21573,21574,21575,21576,21577,21578,21579,21580,21581,21582,21583,
9573921584,21585,21586,21587,21588,21589,21590,21591,21592,21593,21594,21595,
9574021596,21597,21598,21599,21600,21601,21602,21603,21604,21605,21606,21607,
9574121608,21609,21610,21611,21612,21613,21614,21615,21616,21617,21618,21619,
9574221620,21621,21622,21623,21624,21625,21626,21627,21628,21629,21630,21631,
9574321632,21633,21634,21635,21636,21637,21638,21639,21640,21641,21642,21643,
9574421644,21645,21646,21647,21648,21649,21650,21651,21652,21653,21654,21655,
9574521656,21657,21658,21659,21660,21661,21662,21663,21664,21665,21666,21667,
9574621668,21669,21670,21671,21672,21673,21674,21675,21676,21677,21678,21679,
9574721680,21681,21682,21683,21684,21685,21686,21687,21688,21689,21690,21691,
9574821692,21693,21694,21695,21696,21697,21698,21699,21700,21701,21702,21703,
9574921704,21705,21706,21707,21708,21709,21710,21711,21712,21713,21714,21715,
9575021716,21717,21718,21719,21720,21721,21722,21723,21724,21725,21726,21727,
9575121728,21729,21730,21731,21732,21733,21734,21735,21736,21737,21738,21739,
9575221740,21741,21742,21743,21744,21745,21746,21747,21748,21749,21750,21751,
9575321752,21753,21754,21755,21756,21757,21758,21759,21760,21761,21762,21763,
9575421764,21765,21766,21767,21768,21769,21770,21771,21772,21773,21774,21775,
9575521776,21777,21778,21779,21780,21781,21782,21783,21784,21785,21786,21787,
9575621788,21789,21790,21791,21792,21793,21794,21795,21796,21797,21798,21799,
9575721800,21801,21802,21803,21804,21805,21806,21807,21808,21809,21810,21811,
9575821812,21813,21814,21815,21816,21817,21818,21819,21820,21821,21822,21823,
9575921824,21825,21826,21827,21828,21829,21830,21831,21832,21833,21834,21835,
9576021836,21837,21838,21839,21840,21841,21842,21843,21844,21845,21846,21847,
9576121848,21849,21850,21851,21852,21853,21854,21855,21856,21857,21858,21859,
9576221860,21861,21862,21863,21864,21865,21866,21867,21868,21869,21870,21871,
9576321872,21873,21874,21875,21876,21877,21878,21879,21880,21881,21882,21883,
9576421884,21885,21886,21887,21888,21889,21890,21891,21892,21893,21894,21895,
9576521896,21897,21898,21899,21900,21901,21902,21903,21904,21905,21906,21907,
9576621908,21909,21910,21911,21912,21913,21914,21915,21916,21917,21918,21919,
9576721920,21921,21922,21923,21924,21925,21926,21927,21928,21929,21930,21931,
9576821932,21933,21934,21935,21936,21937,21938,21939,21940,21941,21942,21943,
9576921944,21945,21946,21947,21948,21949,21950,21951,21952,21953,21954,21955,
9577021956,21957,21958,21959,21960,21961,21962,21963,21964,21965,21966,21967,
9577121968,21969,21970,21971,21972,21973,21974,21975,21976,21977,21978,21979,
9577221980,21981,21982,21983,21984,21985,21986,21987,21988,21989,21990,21991,
9577321992,21993,21994,21995,21996,21997,21998,21999,22000,22001,22002,22003,
9577422004,22005,22006,22007,22008,22009,22010,22011,22012,22013,22014,22015,
9577522016,22017,22018,22019,22020,22021,22022,22023,22024,22025,22026,22027,
9577622028,22029,22030,22031,22032,22033,22034,22035,22036,22037,22038,22039,
9577722040,22041,22042,22043,22044,22045,22046,22047,22048,22049,22050,22051,
9577822052,22053,22054,22055,22056,22057,22058,22059,22060,22061,22062,22063,
9577922064,22065,22066,22067,22068,22069,22070,22071,22072,22073,22074,22075,
9578022076,22077,22078,22079,22080,22081,22082,22083,22084,22085,22086,22087,
9578122088,22089,22090,22091,22092,22093,22094,22095,22096,22097,22098,22099,
9578222100,22101,22102,22103,22104,22105,22106,22107,22108,22109,22110,22111,
9578322112,22113,22114,22115,22116,22117,22118,22119,22120,22121,22122,22123,
9578422124,22125,22126,22127,22128,22129,22130,22131,22132,22133,22134,22135,
9578522136,22137,22138,22139,22140,22141,22142,22143,22144,22145,22146,22147,
9578622148,22149,22150,22151,22152,22153,22154,22155,22156,22157,22158,22159,
9578722160,22161,22162,22163,22164,22165,22166,22167,22168,22169,22170,22171,
9578822172,22173,22174,22175,22176,22177,22178,22179,22180,22181,22182,22183,
9578922184,22185,22186,22187,22188,22189,22190,22191,22192,22193,22194,22195,
9579022196,22197,22198,22199,22200,22201,22202,22203,22204,22205,22206,22207,
9579122208,22209,22210,22211,22212,22213,22214,22215,22216,22217,22218,22219,
9579222220,22221,22222,22223,22224,22225,22226,22227,22228,22229,22230,22231,
9579322232,22233,22234,22235,22236,22237,22238,22239,22240,22241,22242,22243,
9579422244,22245,22246,22247,22248,22249,22250,22251,22252,22253,22254,22255,
9579522256,22257,22258,22259,22260,22261,22262,22263,22264,22265,22266,22267,
9579622268,22269,22270,22271,22272,22273,22274,22275,22276,22277,22278,22279,
9579722280,22281,22282,22283,22284,22285,22286,22287,22288,22289,22290,22291,
9579822292,22293,22294,22295,22296,22297,22298,22299,22300,22301,22302,22303,
9579922304,22305,22306,22307,22308,22309,22310,22311,22312,22313,22314,22315,
9580022316,22317,22318,22319,22320,22321,22322,22323,22324,22325,22326,22327,
9580122328,22329,22330,22331,22332,22333,22334,22335,22336,22337,22338,22339,
9580222340,22341,22342,22343,22344,22345,22346,22347,22348,22349,22350,22351,
9580322352,22353,22354,22355,22356,22357,22358,22359,22360,22361,22362,22363,
9580422364,22365,22366,22367,22368,22369,22370,22371,22372,22373,22374,22375,
9580522376,22377,22378,22379,22380,22381,22382,22383,22384,22385,22386,22387,
9580622388,22389,22390,22391,22392,22393,22394,22395,22396,22397,22398,22399,
9580722400,22401,22402,22403,22404,22405,22406,22407,22408,22409,22410,22411,
9580822412,22413,22414,22415,22416,22417,22418,22419,22420,22421,22422,22423,
9580922424,22425,22426,22427,22428,22429,22430,22431,22432,22433,22434,22435,
9581022436,22437,22438,22439,22440,22441,22442,22443,22444,22445,22446,22447,
9581122448,22449,22450,22451,22452,22453,22454,22455,22456,22457,22458,22459,
9581222460,22461,22462,22463,22464,22465,22466,22467,22468,22469,22470,22471,
9581322472,22473,22474,22475,22476,22477,22478,22479,22480,22481,22482,22483,
9581422484,22485,22486,22487,22488,22489,22490,22491,22492,22493,22494,22495,
9581522496,22497,22498,22499,22500,22501,22502,22503,22504,22505,22506,22507,
9581622508,22509,22510,22511,22512,22513,22514,22515,22516,22517,22518,22519,
9581722520,22521,22522,22523,22524,22525,22526,22527,22528,22529,22530,22531,
9581822532,22533,22534,22535,22536,22537,22538,22539,22540,22541,22542,22543,
9581922544,22545,22546,22547,22548,22549,22550,22551,22552,22553,22554,22555,
9582022556,22557,22558,22559,22560,22561,22562,22563,22564,22565,22566,22567,
9582122568,22569,22570,22571,22572,22573,22574,22575,22576,22577,22578,22579,
9582222580,22581,22582,22583,22584,22585,22586,22587,22588,22589,22590,22591,
9582322592,22593,22594,22595,22596,22597,22598,22599,22600,22601,22602,22603,
9582422604,22605,22606,22607,22608,22609,22610,22611,22612,22613,22614,22615,
9582522616,22617,22618,22619,22620,22621,22622,22623,22624,22625,22626,22627,
9582622628,22629,22630,22631,22632,22633,22634,22635,22636,22637,22638,22639,
9582722640,22641,22642,22643,22644,22645,22646,22647,22648,22649,22650,22651,
9582822652,22653,22654,22655,22656,22657,22658,22659,22660,22661,22662,22663,
9582922664,22665,22666,22667,22668,22669,22670,22671,22672,22673,22674,22675,
9583022676,22677,22678,22679,22680,22681,22682,22683,22684,22685,22686,22687,
9583122688,22689,22690,22691,22692,22693,22694,22695,22696,22697,22698,22699,
9583222700,22701,22702,22703,22704,22705,22706,22707,22708,22709,22710,22711,
9583322712,22713,22714,22715,22716,22717,22718,22719,22720,22721,22722,22723,
9583422724,22725,22726,22727,22728,22729,22730,22731,22732,22733,22734,22735,
9583522736,22737,22738,22739,22740,22741,22742,22743,22744,22745,22746,22747,
9583622748,22749,22750,22751,22752,22753,22754,22755,22756,22757,22758,22759,
9583722760,22761,22762,22763,22764,22765,22766,22767,22768,22769,22770,22771,
9583822772,22773,22774,22775,22776,22777,22778,22779,22780,22781,22782,22783,
9583922784,22785,22786,22787,22788,22789,22790,22791,22792,22793,22794,22795,
9584022796,22797,22798,22799,22800,22801,22802,22803,22804,22805,22806,22807,
9584122808,22809,22810,22811,22812,22813,22814,22815,22816,22817,22818,22819,
9584222820,22821,22822,22823,22824,22825,22826,22827,22828,22829,22830,22831,
9584322832,22833,22834,22835,22836,22837,22838,22839,22840,22841,22842,22843,
9584422844,22845,22846,22847,22848,22849,22850,22851,22852,22853,22854,22855,
9584522856,22857,22858,22859,22860,22861,22862,22863,22864,22865,22866,22867,
9584622868,22869,22870,22871,22872,22873,22874,22875,22876,22877,22878,22879,
9584722880,22881,22882,22883,22884,22885,22886,22887,22888,22889,22890,22891,
9584822892,22893,22894,22895,22896,22897,22898,22899,22900,22901,22902,22903,
9584922904,22905,22906,22907,22908,22909,22910,22911,22912,22913,22914,22915,
9585022916,22917,22918,22919,22920,22921,22922,22923,22924,22925,22926,22927,
9585122928,22929,22930,22931,22932,22933,22934,22935,22936,22937,22938,22939,
9585222940,22941,22942,22943,22944,22945,22946,22947,22948,22949,22950,22951,
9585322952,22953,22954,22955,22956,22957,22958,22959,22960,22961,22962,22963,
9585422964,22965,22966,22967,22968,22969,22970,22971,22972,22973,22974,22975,
9585522976,22977,22978,22979,22980,22981,22982,22983,22984,22985,22986,22987,
9585622988,22989,22990,22991,22992,22993,22994,22995,22996,22997,22998,22999,
9585723000,23001,23002,23003,23004,23005,23006,23007,23008,23009,23010,23011,
9585823012,23013,23014,23015,23016,23017,23018,23019,23020,23021,23022,23023,
9585923024,23025,23026,23027,23028,23029,23030,23031,23032,23033,23034,23035,
9586023036,23037,23038,23039,23040,23041,23042,23043,23044,23045,23046,23047,
9586123048,23049,23050,23051,23052,23053,23054,23055,23056,23057,23058,23059,
9586223060,23061,23062,23063,23064,23065,23066,23067,23068,23069,23070,23071,
9586323072,23073,23074,23075,23076,23077,23078,23079,23080,23081,23082,23083,
9586423084,23085,23086,23087,23088,23089,23090,23091,23092,23093,23094,23095,
9586523096,23097,23098,23099,23100,23101,23102,23103,23104,23105,23106,23107,
9586623108,23109,23110,23111,23112,23113,23114,23115,23116,23117,23118,23119,
9586723120,23121,23122,23123,23124,23125,23126,23127,23128,23129,23130,23131,
9586823132,23133,23134,23135,23136,23137,23138,23139,23140,23141,23142,23143,
9586923144,23145,23146,23147,23148,23149,23150,23151,23152,23153,23154,23155,
9587023156,23157,23158,23159,23160,23161,23162,23163,23164,23165,23166,23167,
9587123168,23169,23170,23171,23172,23173,23174,23175,23176,23177,23178,23179,
9587223180,23181,23182,23183,23184,23185,23186,23187,23188,23189,23190,23191,
9587323192,23193,23194,23195,23196,23197,23198,23199,23200,23201,23202,23203,
9587423204,23205,23206,23207,23208,23209,23210,23211,23212,23213,23214,23215,
9587523216,23217,23218,23219,23220,23221,23222,23223,23224,23225,23226,23227,
9587623228,23229,23230,23231,23232,23233,23234,23235,23236,23237,23238,23239,
9587723240,23241,23242,23243,23244,23245,23246,23247,23248,23249,23250,23251,
9587823252,23253,23254,23255,23256,23257,23258,23259,23260,23261,23262,23263,
9587923264,23265,23266,23267,23268,23269,23270,23271,23272,23273,23274,23275,
9588023276,23277,23278,23279,23280,23281,23282,23283,23284,23285,23286,23287,
9588123288,23289,23290,23291,23292,23293,23294,23295,23296,23297,23298,23299,
9588223300,23301,23302,23303,23304,23305,23306,23307,23308,23309,23310,23311,
9588323312,23313,23314,23315,23316,23317,23318,23319,23320,23321,23322,23323,
9588423324,23325,23326,23327,23328,23329,23330,23331,23332,23333,23334,23335,
9588523336,23337,23338,23339,23340,23341,23342,23343,23344,23345,23346,23347,
9588623348,23349,23350,23351,23352,23353,23354,23355,23356,23357,23358,23359,
9588723360,23361,23362,23363,23364,23365,23366,23367,23368,23369,23370,23371,
9588823372,23373,23374,23375,23376,23377,23378,23379,23380,23381,23382,23383,
9588923384,23385,23386,23387,23388,23389,23390,23391,23392,23393,23394,23395,
9589023396,23397,23398,23399,23400,23401,23402,23403,23404,23405,23406,23407,
9589123408,23409,23410,23411,23412,23413,23414,23415,23416,23417,23418,23419,
9589223420,23421,23422,23423,23424,23425,23426,23427,23428,23429,23430,23431,
9589323432,23433,23434,23435,23436,23437,23438,23439,23440,23441,23442,23443,
9589423444,23445,23446,23447,23448,23449,23450,23451,23452,23453,23454,23455,
9589523456,23457,23458,23459,23460,23461,23462,23463,23464,23465,23466,23467,
9589623468,23469,23470,23471,23472,23473,23474,23475,23476,23477,23478,23479,
9589723480,23481,23482,23483,23484,23485,23486,23487,23488,23489,23490,23491,
9589823492,23493,23494,23495,23496,23497,23498,23499,23500,23501,23502,23503,
9589923504,23505,23506,23507,23508,23509,23510,23511,23512,23513,23514,23515,
9590023516,23517,23518,23519,23520,23521,23522,23523,23524,23525,23526,23527,
9590123528,23529,23530,23531,23532,23533,23534,23535,23536,23537,23538,23539,
9590223540,23541,23542,23543,23544,23545,23546,23547,23548,23549,23550,23551,
9590323552,23553,23554,23555,23556,23557,23558,23559,23560,23561,23562,23563,
9590423564,23565,23566,23567,23568,23569,23570,23571,23572,23573,23574,23575,
9590523576,23577,23578,23579,23580,23581,23582,23583,23584,23585,23586,23587,
9590623588,23589,23590,23591,23592,23593,23594,23595,23596,23597,23598,23599,
9590723600,23601,23602,23603,23604,23605,23606,23607,23608,23609,23610,23611,
9590823612,23613,23614,23615,23616,23617,23618,23619,23620,23621,23622,23623,
9590923624,23625,23626,23627,23628,23629,23630,23631,23632,23633,23634,23635,
9591023636,23637,23638,23639,23640,23641,23642,23643,23644,23645,23646,23647,
9591123648,23649,23650,23651,23652,23653,23654,23655,23656,23657,23658,23659,
9591223660,23661,23662,23663,23664,23665,23666,23667,23668,23669,23670,23671,
9591323672,23673,23674,23675,23676,23677,23678,23679,23680,23681,23682,23683,
9591423684,23685,23686,23687,23688,23689,23690,23691,23692,23693,23694,23695,
9591523696,23697,23698,23699,23700,23701,23702,23703,23704,23705,23706,23707,
9591623708,23709,23710,23711,23712,23713,23714,23715,23716,23717,23718,23719,
9591723720,23721,23722,23723,23724,23725,23726,23727,23728,23729,23730,23731,
9591823732,23733,23734,23735,23736,23737,23738,23739,23740,23741,23742,23743,
9591923744,23745,23746,23747,23748,23749,23750,23751,23752,23753,23754,23755,
9592023756,23757,23758,23759,23760,23761,23762,23763,23764,23765,23766,23767,
9592123768,23769,23770,23771,23772,23773,23774,23775,23776,23777,23778,23779,
9592223780,23781,23782,23783,23784,23785,23786,23787,23788,23789,23790,23791,
9592323792,23793,23794,23795,23796,23797,23798,23799,23800,23801,23802,23803,
9592423804,23805,23806,23807,23808,23809,23810,23811,23812,23813,23814,23815,
9592523816,23817,23818,23819,23820,23821,23822,23823,23824,23825,23826,23827,
9592623828,23829,23830,23831,23832,23833,23834,23835,23836,23837,23838,23839,
9592723840,23841,23842,23843,23844,23845,23846,23847,23848,23849,23850,23851,
9592823852,23853,23854,23855,23856,23857,23858,23859,23860,23861,23862,23863,
9592923864,23865,23866,23867,23868,23869,23870,23871,23872,23873,23874,23875,
9593023876,23877,23878,23879,23880,23881,23882,23883,23884,23885,23886,23887,
9593123888,23889,23890,23891,23892,23893,23894,23895,23896,23897,23898,23899,
9593223900,23901,23902,23903,23904,23905,23906,23907,23908,23909,23910,23911,
9593323912,23913,23914,23915,23916,23917,23918,23919,23920,23921,23922,23923,
9593423924,23925,23926,23927,23928,23929,23930,23931,23932,23933,23934,23935,
9593523936,23937,23938,23939,23940,23941,23942,23943,23944,23945,23946,23947,
9593623948,23949,23950,23951,23952,23953,23954,23955,23956,23957,23958,23959,
9593723960,23961,23962,23963,23964,23965,23966,23967,23968,23969,23970,23971,
9593823972,23973,23974,23975,23976,23977,23978,23979,23980,23981,23982,23983,
9593923984,23985,23986,23987,23988,23989,23990,23991,23992,23993,23994,23995,
9594023996,23997,23998,23999,24000,24001,24002,24003,24004,24005,24006,24007,
9594124008,24009,24010,24011,24012,24013,24014,24015,24016,24017,24018,24019,
9594224020,24021,24022,24023,24024,24025,24026,24027,24028,24029,24030,24031,
9594324032,24033,24034,24035,24036,24037,24038,24039,24040,24041,24042,24043,
9594424044,24045,24046,24047,24048,24049,24050,24051,24052,24053,24054,24055,
9594524056,24057,24058,24059,24060,24061,24062,24063,24064,24065,24066,24067,
9594624068,24069,24070,24071,24072,24073,24074,24075,24076,24077,24078,24079,
9594724080,24081,24082,24083,24084,24085,24086,24087,24088,24089,24090,24091,
9594824092,24093,24094,24095,24096,24097,24098,24099,24100,24101,24102,24103,
9594924104,24105,24106,24107,24108,24109,24110,24111,24112,24113,24114,24115,
9595024116,24117,24118,24119,24120,24121,24122,24123,24124,24125,24126,24127,
9595124128,24129,24130,24131,24132,24133,24134,24135,24136,24137,24138,24139,
9595224140,24141,24142,24143,24144,24145,24146,24147,24148,24149,24150,24151,
9595324152,24153,24154,24155,24156,24157,24158,24159,24160,24161,24162,24163,
9595424164,24165,24166,24167,24168,24169,24170,24171,24172,24173,24174,24175,
9595524176,24177,24178,24179,24180,24181,24182,24183,24184,24185,24186,24187,
9595624188,24189,24190,24191,24192,24193,24194,24195,24196,24197,24198,24199,
9595724200,24201,24202,24203,24204,24205,24206,24207,24208,24209,24210,24211,
9595824212,24213,24214,24215,24216,24217,24218,24219,24220,24221,24222,24223,
9595924224,24225,24226,24227,24228,24229,24230,24231,24232,24233,24234,24235,
9596024236,24237,24238,24239,24240,24241,24242,24243,24244,24245,24246,24247,
9596124248,24249,24250,24251,24252,24253,24254,24255,24256,24257,24258,24259,
9596224260,24261,24262,24263,24264,24265,24266,24267,24268,24269,24270,24271,
9596324272,24273,24274,24275,24276,24277,24278,24279,24280,24281,24282,24283,
9596424284,24285,24286,24287,24288,24289,24290,24291,24292,24293,24294,24295,
9596524296,24297,24298,24299,24300,24301,24302,24303,24304,24305,24306,24307,
9596624308,24309,24310,24311,24312,24313,24314,24315,24316,24317,24318,24319,
9596724320,24321,24322,24323,24324,24325,24326,24327,24328,24329,24330,24331,
9596824332,24333,24334,24335,24336,24337,24338,24339,24340,24341,24342,24343,
9596924344,24345,24346,24347,24348,24349,24350,24351,24352,24353,24354,24355,
9597024356,24357,24358,24359,24360,24361,24362,24363,24364,24365,24366,24367,
9597124368,24369,24370,24371,24372,24373,24374,24375,24376,24377,24378,24379,
9597224380,24381,24382,24383,24384,24385,24386,24387,24388,24389,24390,24391,
9597324392,24393,24394,24395,24396,24397,24398,24399,24400,24401,24402,24403,
9597424404,24405,24406,24407,24408,24409,24410,24411,24412,24413,24414,24415,
9597524416,24417,24418,24419,24420,24421,24422,24423,24424,24425,24426,24427,
9597624428,24429,24430,24431,24432,24433,24434,24435,24436,24437,24438,24439,
9597724440,24441,24442,24443,24444,24445,24446,24447,24448,24449,24450,24451,
9597824452,24453,24454,24455,24456,24457,24458,24459,24460,24461,24462,24463,
9597924464,24465,24466,24467,24468,24469,24470,24471,24472,24473,24474,24475,
9598024476,24477,24478,24479,24480,24481,24482,24483,24484,24485,24486,24487,
9598124488,24489,24490,24491,24492,24493,24494,24495,24496,24497,24498,24499,
9598224500,24501,24502,24503,24504,24505,24506,24507,24508,24509,24510,24511,
9598324512,24513,24514,24515,24516,24517,24518,24519,24520,24521,24522,24523,
9598424524,24525,24526,24527,24528,24529,24530,24531,24532,24533,24534,24535,
9598524536,24537,24538,24539,24540,24541,24542,24543,24544,24545,24546,24547,
9598624548,24549,24550,24551,24552,24553,24554,24555,24556,24557,24558,24559,
9598724560,24561,24562,24563,24564,24565,24566,24567,24568,24569,24570,24571,
9598824572,24573,24574,24575,24576,24577,24578,24579,24580,24581,24582,24583,
9598924584,24585,24586,24587,24588,24589,24590,24591,24592,24593,24594,24595,
9599024596,24597,24598,24599,24600,24601,24602,24603,24604,24605,24606,24607,
9599124608,24609,24610,24611,24612,24613,24614,24615,24616,24617,24618,24619,
9599224620,24621,24622,24623,24624,24625,24626,24627,24628,24629,24630,24631,
9599324632,24633,24634,24635,24636,24637,24638,24639,24640,24641,24642,24643,
9599424644,24645,24646,24647,24648,24649,24650,24651,24652,24653,24654,24655,
9599524656,24657,24658,24659,24660,24661,24662,24663,24664,24665,24666,24667,
9599624668,24669,24670,24671,24672,24673,24674,24675,24676,24677,24678,24679,
9599724680,24681,24682,24683,24684,24685,24686,24687,24688,24689,24690,24691,
9599824692,24693,24694,24695,24696,24697,24698,24699,24700,24701,24702,24703,
9599924704,24705,24706,24707,24708,24709,24710,24711,24712,24713,24714,24715,
9600024716,24717,24718,24719,24720,24721,24722,24723,24724,24725,24726,24727,
9600124728,24729,24730,24731,24732,24733,24734,24735,24736,24737,24738,24739,
9600224740,24741,24742,24743,24744,24745,24746,24747,24748,24749,24750,24751,
9600324752,24753,24754,24755,24756,24757,24758,24759,24760,24761,24762,24763,
9600424764,24765,24766,24767,24768,24769,24770,24771,24772,24773,24774,24775,
9600524776,24777,24778,24779,24780,24781,24782,24783,24784,24785,24786,24787,
9600624788,24789,24790,24791,24792,24793,24794,24795,24796,24797,24798,24799,
9600724800,24801,24802,24803,24804,24805,24806,24807,24808,24809,24810,24811,
9600824812,24813,24814,24815,24816,24817,24818,24819,24820,24821,24822,24823,
9600924824,24825,24826,24827,24828,24829,24830,24831,24832,24833,24834,24835,
9601024836,24837,24838,24839,24840,24841,24842,24843,24844,24845,24846,24847,
9601124848,24849,24850,24851,24852,24853,24854,24855,24856,24857,24858,24859,
9601224860,24861,24862,24863,24864,24865,24866,24867,24868,24869,24870,24871,
9601324872,24873,24874,24875,24876,24877,24878,24879,24880,24881,24882,24883,
9601424884,24885,24886,24887,24888,24889,24890,24891,24892,24893,24894,24895,
9601524896,24897,24898,24899,24900,24901,24902,24903,24904,24905,24906,24907,
9601624908,24909,24910,24911,24912,24913,24914,24915,24916,24917,24918,24919,
9601724920,24921,24922,24923,24924,24925,24926,24927,24928,24929,24930,24931,
9601824932,24933,24934,24935,24936,24937,24938,24939,24940,24941,24942,24943,
9601924944,24945,24946,24947,24948,24949,24950,24951,24952,24953,24954,24955,
9602024956,24957,24958,24959,24960,24961,24962,24963,24964,24965,24966,24967,
9602124968,24969,24970,24971,24972,24973,24974,24975,24976,24977,24978,24979,
9602224980,24981,24982,24983,24984,24985,24986,24987,24988,24989,24990,24991,
9602324992,24993,24994,24995,24996,24997,24998,24999,25000,25001,25002,25003,
9602425004,25005,25006,25007,25008,25009,25010,25011,25012,25013,25014,25015,
9602525016,25017,25018,25019,25020,25021,25022,25023,25024,25025,25026,25027,
9602625028,25029,25030,25031,25032,25033,25034,25035,25036,25037,25038,25039,
9602725040,25041,25042,25043,25044,25045,25046,25047,25048,25049,25050,25051,
9602825052,25053,25054,25055,25056,25057,25058,25059,25060,25061,25062,25063,
9602925064,25065,25066,25067,25068,25069,25070,25071,25072,25073,25074,25075,
9603025076,25077,25078,25079,25080,25081,25082,25083,25084,25085,25086,25087,
9603125088,25089,25090,25091,25092,25093,25094,25095,25096,25097,25098,25099,
9603225100,25101,25102,25103,25104,25105,25106,25107,25108,25109,25110,25111,
9603325112,25113,25114,25115,25116,25117,25118,25119,25120,25121,25122,25123,
9603425124,25125,25126,25127,25128,25129,25130,25131,25132,25133,25134,25135,
9603525136,25137,25138,25139,25140,25141,25142,25143,25144,25145,25146,25147,
9603625148,25149,25150,25151,25152,25153,25154,25155,25156,25157,25158,25159,
9603725160,25161,25162,25163,25164,25165,25166,25167,25168,25169,25170,25171,
9603825172,25173,25174,25175,25176,25177,25178,25179,25180,25181,25182,25183,
9603925184,25185,25186,25187,25188,25189,25190,25191,25192,25193,25194,25195,
9604025196,25197,25198,25199,25200,25201,25202,25203,25204,25205,25206,25207,
9604125208,25209,25210,25211,25212,25213,25214,25215,25216,25217,25218,25219,
9604225220,25221,25222,25223,25224,25225,25226,25227,25228,25229,25230,25231,
9604325232,25233,25234,25235,25236,25237,25238,25239,25240,25241,25242,25243,
9604425244,25245,25246,25247,25248,25249,25250,25251,25252,25253,25254,25255,
9604525256,25257,25258,25259,25260,25261,25262,25263,25264,25265,25266,25267,
9604625268,25269,25270,25271,25272,25273,25274,25275,25276,25277,25278,25279,
9604725280,25281,25282,25283,25284,25285,25286,25287,25288,25289,25290,25291,
9604825292,25293,25294,25295,25296,25297,25298,25299,25300,25301,25302,25303,
9604925304,25305,25306,25307,25308,25309,25310,25311,25312,25313,25314,25315,
9605025316,25317,25318,25319,25320,25321,25322,25323,25324,25325,25326,25327,
9605125328,25329,25330,25331,25332,25333,25334,25335,25336,25337,25338,25339,
9605225340,25341,25342,25343,25344,25345,25346,25347,25348,25349,25350,25351,
9605325352,25353,25354,25355,25356,25357,25358,25359,25360,25361,25362,25363,
9605425364,25365,25366,25367,25368,25369,25370,25371,25372,25373,25374,25375,
9605525376,25377,25378,25379,25380,25381,25382,25383,25384,25385,25386,25387,
9605625388,25389,25390,25391,25392,25393,25394,25395,25396,25397,25398,25399,
9605725400,25401,25402,25403,25404,25405,25406,25407,25408,25409,25410,25411,
9605825412,25413,25414,25415,25416,25417,25418,25419,25420,25421,25422,25423,
9605925424,25425,25426,25427,25428,25429,25430,25431,25432,25433,25434,25435,
9606025436,25437,25438,25439,25440,25441,25442,25443,25444,25445,25446,25447,
9606125448,25449,25450,25451,25452,25453,25454,25455,25456,25457,25458,25459,
9606225460,25461,25462,25463,25464,25465,25466,25467,25468,25469,25470,25471,
9606325472,25473,25474,25475,25476,25477,25478,25479,25480,25481,25482,25483,
9606425484,25485,25486,25487,25488,25489,25490,25491,25492,25493,25494,25495,
9606525496,25497,25498,25499,25500,25501,25502,25503,25504,25505,25506,25507,
9606625508,25509,25510,25511,25512,25513,25514,25515,25516,25517,25518,25519,
9606725520,25521,25522,25523,25524,25525,25526,25527,25528,25529,25530,25531,
9606825532,25533,25534,25535,25536,25537,25538,25539,25540,25541,25542,25543,
9606925544,25545,25546,25547,25548,25549,25550,25551,25552,25553,25554,25555,
9607025556,25557,25558,25559,25560,25561,25562,25563,25564,25565,25566,25567,
9607125568,25569,25570,25571,25572,25573,25574,25575,25576,25577,25578,25579,
9607225580,25581,25582,25583,25584,25585,25586,25587,25588,25589,25590,25591,
9607325592,25593,25594,25595,25596,25597,25598,25599,25600,25601,25602,25603,
9607425604,25605,25606,25607,25608,25609,25610,25611,25612,25613,25614,25615,
9607525616,25617,25618,25619,25620,25621,25622,25623,25624,25625,25626,25627,
9607625628,25629,25630,25631,25632,25633,25634,25635,25636,25637,25638,25639,
9607725640,25641,25642,25643,25644,25645,25646,25647,25648,25649,25650,25651,
9607825652,25653,25654,25655,25656,25657,25658,25659,25660,25661,25662,25663,
9607925664,25665,25666,25667,25668,25669,25670,25671,25672,25673,25674,25675,
9608025676,25677,25678,25679,25680,25681,25682,25683,25684,25685,25686,25687,
9608125688,25689,25690,25691,25692,25693,25694,25695,25696,25697,25698,25699,
9608225700,25701,25702,25703,25704,25705,25706,25707,25708,25709,25710,25711,
9608325712,25713,25714,25715,25716,25717,25718,25719,25720,25721,25722,25723,
9608425724,25725,25726,25727,25728,25729,25730,25731,25732,25733,25734,25735,
9608525736,25737,25738,25739,25740,25741,25742,25743,25744,25745,25746,25747,
9608625748,25749,25750,25751,25752,25753,25754,25755,25756,25757,25758,25759,
9608725760,25761,25762,25763,25764,25765,25766,25767,25768,25769,25770,25771,
9608825772,25773,25774,25775,25776,25777,25778,25779,25780,25781,25782,25783,
9608925784,25785,25786,25787,25788,25789,25790,25791,25792,25793,25794,25795,
9609025796,25797,25798,25799,25800,25801,25802,25803,25804,25805,25806,25807,
9609125808,25809,25810,25811,25812,25813,25814,25815,25816,25817,25818,25819,
9609225820,25821,25822,25823,25824,25825,25826,25827,25828,25829,25830,25831,
9609325832,25833,25834,25835,25836,25837,25838,25839,25840,25841,25842,25843,
9609425844,25845,25846,25847,25848,25849,25850,25851,25852,25853,25854,25855,
9609525856,25857,25858,25859,25860,25861,25862,25863,25864,25865,25866,25867,
9609625868,25869,25870,25871,25872,25873,25874,25875,25876,25877,25878,25879,
9609725880,25881,25882,25883,25884,25885,25886,25887,25888,25889,25890,25891,
9609825892,25893,25894,25895,25896,25897,25898,25899,25900,25901,25902,25903,
9609925904,25905,25906,25907,25908,25909,25910,25911,25912,25913,25914,25915,
9610025916,25917,25918,25919,25920,25921,25922,25923,25924,25925,25926,25927,
9610125928,25929,25930,25931,25932,25933,25934,25935,25936,25937,25938,25939,
9610225940,25941,25942,25943,25944,25945,25946,25947,25948,25949,25950,25951,
9610325952,25953,25954,25955,25956,25957,25958,25959,25960,25961,25962,25963,
9610425964,25965,25966,25967,25968,25969,25970,25971,25972,25973,25974,25975,
9610525976,25977,25978,25979,25980,25981,25982,25983,25984,25985,25986,25987,
9610625988,25989,25990,25991,25992,25993,25994,25995,25996,25997,25998,25999,
9610726000,26001,26002,26003,26004,26005,26006,26007,26008,26009,26010,26011,
9610826012,26013,26014,26015,26016,26017,26018,26019,26020,26021,26022,26023,
9610926024,26025,26026,26027,26028,26029,26030,26031,26032,26033,26034,26035,
9611026036,26037,26038,26039,26040,26041,26042,26043,26044,26045,26046,26047,
9611126048,26049,26050,26051,26052,26053,26054,26055,26056,26057,26058,26059,
9611226060,26061,26062,26063,26064,26065,26066,26067,26068,26069,26070,26071,
9611326072,26073,26074,26075,26076,26077,26078,26079,26080,26081,26082,26083,
9611426084,26085,26086,26087,26088,26089,26090,26091,26092,26093,26094,26095,
9611526096,26097,26098,26099,26100,26101,26102,26103,26104,26105,26106,26107,
9611626108,26109,26110,26111,26112,26113,26114,26115,26116,26117,26118,26119,
9611726120,26121,26122,26123,26124,26125,26126,26127,26128,26129,26130,26131,
9611826132,26133,26134,26135,26136,26137,26138,26139,26140,26141,26142,26143,
9611926144,26145,26146,26147,26148,26149,26150,26151,26152,26153,26154,26155,
9612026156,26157,26158,26159,26160,26161,26162,26163,26164,26165,26166,26167,
9612126168,26169,26170,26171,26172,26173,26174,26175,26176,26177,26178,26179,
9612226180,26181,26182,26183,26184,26185,26186,26187,26188,26189,26190,26191,
9612326192,26193,26194,26195,26196,26197,26198,26199,26200,26201,26202,26203,
9612426204,26205,26206,26207,26208,26209,26210,26211,26212,26213,26214,26215,
9612526216,26217,26218,26219,26220,26221,26222,26223,26224,26225,26226,26227,
9612626228,26229,26230,26231,26232,26233,26234,26235,26236,26237,26238,26239,
9612726240,26241,26242,26243,26244,26245,26246,26247,26248,26249,26250,26251,
9612826252,26253,26254,26255,26256,26257,26258,26259,26260,26261,26262,26263,
9612926264,26265,26266,26267,26268,26269,26270,26271,26272,26273,26274,26275,
9613026276,26277,26278,26279,26280,26281,26282,26283,26284,26285,26286,26287,
9613126288,26289,26290,26291,26292,26293,26294,26295,26296,26297,26298,26299,
9613226300,26301,26302,26303,26304,26305,26306,26307,26308,26309,26310,26311,
9613326312,26313,26314,26315,26316,26317,26318,26319,26320,26321,26322,26323,
9613426324,26325,26326,26327,26328,26329,26330,26331,26332,26333,26334,26335,
9613526336,26337,26338,26339,26340,26341,26342,26343,26344,26345,26346,26347,
9613626348,26349,26350,26351,26352,26353,26354,26355,26356,26357,26358,26359,
9613726360,26361,26362,26363,26364,26365,26366,26367,26368,26369,26370,26371,
9613826372,26373,26374,26375,26376,26377,26378,26379,26380,26381,26382,26383,
9613926384,26385,26386,26387,26388,26389,26390,26391,26392,26393,26394,26395,
9614026396,26397,26398,26399,26400,26401,26402,26403,26404,26405,26406,26407,
9614126408,26409,26410,26411,26412,26413,26414,26415,26416,26417,26418,26419,
9614226420,26421,26422,26423,26424,26425,26426,26427,26428,26429,26430,26431,
9614326432,26433,26434,26435,26436,26437,26438,26439,26440,26441,26442,26443,
9614426444,26445,26446,26447,26448,26449,26450,26451,26452,26453,26454,26455,
9614526456,26457,26458,26459,26460,26461,26462,26463,26464,26465,26466,26467,
9614626468,26469,26470,26471,26472,26473,26474,26475,26476,26477,26478,26479,
9614726480,26481,26482,26483,26484,26485,26486,26487,26488,26489,26490,26491,
9614826492,26493,26494,26495,26496,26497,26498,26499,26500,26501,26502,26503,
9614926504,26505,26506,26507,26508,26509,26510,26511,26512,26513,26514,26515,
9615026516,26517,26518,26519,26520,26521,26522,26523,26524,26525,26526,26527,
9615126528,26529,26530,26531,26532,26533,26534,26535,26536,26537,26538,26539,
9615226540,26541,26542,26543,26544,26545,26546,26547,26548,26549,26550,26551,
9615326552,26553,26554,26555,26556,26557,26558,26559,26560,26561,26562,26563,
9615426564,26565,26566,26567,26568,26569,26570,26571,26572,26573,26574,26575,
9615526576,26577,26578,26579,26580,26581,26582,26583,26584,26585,26586,26587,
9615626588,26589,26590,26591,26592,26593,26594,26595,26596,26597,26598,26599,
9615726600,26601,26602,26603,26604,26605,26606,26607,26608,26609,26610,26611,
9615826612,26613,26614,26615,26616,26617,26618,26619,26620,26621,26622,26623,
9615926624,26625,26626,26627,26628,26629,26630,26631,26632,26633,26634,26635,
9616026636,26637,26638,26639,26640,26641,26642,26643,26644,26645,26646,26647,
9616126648,26649,26650,26651,26652,26653,26654,26655,26656,26657,26658,26659,
9616226660,26661,26662,26663,26664,26665,26666,26667,26668,26669,26670,26671,
9616326672,26673,26674,26675,26676,26677,26678,26679,26680,26681,26682,26683,
9616426684,26685,26686,26687,26688,26689,26690,26691,26692,26693,26694,26695,
9616526696,26697,26698,26699,26700,26701,26702,26703,26704,26705,26706,26707,
9616626708,26709,26710,26711,26712,26713,26714,26715,26716,26717,26718,26719,
9616726720,26721,26722,26723,26724,26725,26726,26727,26728,26729,26730,26731,
9616826732,26733,26734,26735,26736,26737,26738,26739,26740,26741,26742,26743,
9616926744,26745,26746,26747,26748,26749,26750,26751,26752,26753,26754,26755,
9617026756,26757,26758,26759,26760,26761,26762,26763,26764,26765,26766,26767,
9617126768,26769,26770,26771,26772,26773,26774,26775,26776,26777,26778,26779,
9617226780,26781,26782,26783,26784,26785,26786,26787,26788,26789,26790,26791,
9617326792,26793,26794,26795,26796,26797,26798,26799,26800,26801,26802,26803,
9617426804,26805,26806,26807,26808,26809,26810,26811,26812,26813,26814,26815,
9617526816,26817,26818,26819,26820,26821,26822,26823,26824,26825,26826,26827,
9617626828,26829,26830,26831,26832,26833,26834,26835,26836,26837,26838,26839,
9617726840,26841,26842,26843,26844,26845,26846,26847,26848,26849,26850,26851,
9617826852,26853,26854,26855,26856,26857,26858,26859,26860,26861,26862,26863,
9617926864,26865,26866,26867,26868,26869,26870,26871,26872,26873,26874,26875,
9618026876,26877,26878,26879,26880,26881,26882,26883,26884,26885,26886,26887,
9618126888,26889,26890,26891,26892,26893,26894,26895,26896,26897,26898,26899,
9618226900,26901,26902,26903,26904,26905,26906,26907,26908,26909,26910,26911,
9618326912,26913,26914,26915,26916,26917,26918,26919,26920,26921,26922,26923,
9618426924,26925,26926,26927,26928,26929,26930,26931,26932,26933,26934,26935,
9618526936,26937,26938,26939,26940,26941,26942,26943,26944,26945,26946,26947,
9618626948,26949,26950,26951,26952,26953,26954,26955,26956,26957,26958,26959,
9618726960,26961,26962,26963,26964,26965,26966,26967,26968,26969,26970,26971,
9618826972,26973,26974,26975,26976,26977,26978,26979,26980,26981,26982,26983,
9618926984,26985,26986,26987,26988,26989,26990,26991,26992,26993,26994,26995,
9619026996,26997,26998,26999,27000,27001,27002,27003,27004,27005,27006,27007,
9619127008,27009,27010,27011,27012,27013,27014,27015,27016,27017,27018,27019,
9619227020,27021,27022,27023,27024,27025,27026,27027,27028,27029,27030,27031,
9619327032,27033,27034,27035,27036,27037,27038,27039,27040,27041,27042,27043,
9619427044,27045,27046,27047,27048,27049,27050,27051,27052,27053,27054,27055,
9619527056,27057,27058,27059,27060,27061,27062,27063,27064,27065,27066,27067,
9619627068,27069,27070,27071,27072,27073,27074,27075,27076,27077,27078,27079,
9619727080,27081,27082,27083,27084,27085,27086,27087,27088,27089,27090,27091,
9619827092,27093,27094,27095,27096,27097,27098,27099,27100,27101,27102,27103,
9619927104,27105,27106,27107,27108,27109,27110,27111,27112,27113,27114,27115,
9620027116,27117,27118,27119,27120,27121,27122,27123,27124,27125,27126,27127,
9620127128,27129,27130,27131,27132,27133,27134,27135,27136,27137,27138,27139,
9620227140,27141,27142,27143,27144,27145,27146,27147,27148,27149,27150,27151,
9620327152,27153,27154,27155,27156,27157,27158,27159,27160,27161,27162,27163,
9620427164,27165,27166,27167,27168,27169,27170,27171,27172,27173,27174,27175,
9620527176,27177,27178,27179,27180,27181,27182,27183,27184,27185,27186,27187,
9620627188,27189,27190,27191,27192,27193,27194,27195,27196,27197,27198,27199,
9620727200,27201,27202,27203,27204,27205,27206,27207,27208,27209,27210,27211,
9620827212,27213,27214,27215,27216,27217,27218,27219,27220,27221,27222,27223,
9620927224,27225,27226,27227,27228,27229,27230,27231,27232,27233,27234,27235,
9621027236,27237,27238,27239,27240,27241,27242,27243,27244,27245,27246,27247,
9621127248,27249,27250,27251,27252,27253,27254,27255,27256,27257,27258,27259,
9621227260,27261,27262,27263,27264,27265,27266,27267,27268,27269,27270,27271,
9621327272,27273,27274,27275,27276,27277,27278,27279,27280,27281,27282,27283,
9621427284,27285,27286,27287,27288,27289,27290,27291,27292,27293,27294,27295,
9621527296,27297,27298,27299,27300,27301,27302,27303,27304,27305,27306,27307,
9621627308,27309,27310,27311,27312,27313,27314,27315,27316,27317,27318,27319,
9621727320,27321,27322,27323,27324,27325,27326,27327,27328,27329,27330,27331,
9621827332,27333,27334,27335,27336,27337,27338,27339,27340,27341,27342,27343,
9621927344,27345,27346,27347,27348,27349,27350,27351,27352,27353,27354,27355,
9622027356,27357,27358,27359,27360,27361,27362,27363,27364,27365,27366,27367,
9622127368,27369,27370,27371,27372,27373,27374,27375,27376,27377,27378,27379,
9622227380,27381,27382,27383,27384,27385,27386,27387,27388,27389,27390,27391,
9622327392,27393,27394,27395,27396,27397,27398,27399,27400,27401,27402,27403,
9622427404,27405,27406,27407,27408,27409,27410,27411,27412,27413,27414,27415,
9622527416,27417,27418,27419,27420,27421,27422,27423,27424,27425,27426,27427,
9622627428,27429,27430,27431,27432,27433,27434,27435,27436,27437,27438,27439,
9622727440,27441,27442,27443,27444,27445,27446,27447,27448,27449,27450,27451,
9622827452,27453,27454,27455,27456,27457,27458,27459,27460,27461,27462,27463,
9622927464,27465,27466,27467,27468,27469,27470,27471,27472,27473,27474,27475,
9623027476,27477,27478,27479,27480,27481,27482,27483,27484,27485,27486,27487,
9623127488,27489,27490,27491,27492,27493,27494,27495,27496,27497,27498,27499,
9623227500,27501,27502,27503,27504,27505,27506,27507,27508,27509,27510,27511,
9623327512,27513,27514,27515,27516,27517,27518,27519,27520,27521,27522,27523,
9623427524,27525,27526,27527,27528,27529,27530,27531,27532,27533,27534,27535,
9623527536,27537,27538,27539,27540,27541,27542,27543,27544,27545,27546,27547,
9623627548,27549,27550,27551,27552,27553,27554,27555,27556,27557,27558,27559,
9623727560,27561,27562,27563,27564,27565,27566,27567,27568,27569,27570,27571,
9623827572,27573,27574,27575,27576,27577,27578,27579,27580,27581,27582,27583,
9623927584,27585,27586,27587,27588,27589,27590,27591,27592,27593,27594,27595,
9624027596,27597,27598,27599,27600,27601,27602,27603,27604,27605,27606,27607,
9624127608,27609,27610,27611,27612,27613,27614,27615,27616,27617,27618,27619,
9624227620,27621,27622,27623,27624,27625,27626,27627,27628,27629,27630,27631,
9624327632,27633,27634,27635,27636,27637,27638,27639,27640,27641,27642,27643,
9624427644,27645,27646,27647,27648,27649,27650,27651,27652,27653,27654,27655,
9624527656,27657,27658,27659,27660,27661,27662,27663,27664,27665,27666,27667,
9624627668,27669,27670,27671,27672,27673,27674,27675,27676,27677,27678,27679,
9624727680,27681,27682,27683,27684,27685,27686,27687,27688,27689,27690,27691,
9624827692,27693,27694,27695,27696,27697,27698,27699,27700,27701,27702,27703,
9624927704,27705,27706,27707,27708,27709,27710,27711,27712,27713,27714,27715,
9625027716,27717,27718,27719,27720,27721,27722,27723,27724,27725,27726,27727,
9625127728,27729,27730,27731,27732,27733,27734,27735,27736,27737,27738,27739,
9625227740,27741,27742,27743,27744,27745,27746,27747,27748,27749,27750,27751,
9625327752,27753,27754,27755,27756,27757,27758,27759,27760,27761,27762,27763,
9625427764,27765,27766,27767,27768,27769,27770,27771,27772,27773,27774,27775,
9625527776,27777,27778,27779,27780,27781,27782,27783,27784,27785,27786,27787,
9625627788,27789,27790,27791,27792,27793,27794,27795,27796,27797,27798,27799,
9625727800,27801,27802,27803,27804,27805,27806,27807,27808,27809,27810,27811,
9625827812,27813,27814,27815,27816,27817,27818,27819,27820,27821,27822,27823,
9625927824,27825,27826,27827,27828,27829,27830,27831,27832,27833,27834,27835,
9626027836,27837,27838,27839,27840,27841,27842,27843,27844,27845,27846,27847,
9626127848,27849,27850,27851,27852,27853,27854,27855,27856,27857,27858,27859,
9626227860,27861,27862,27863,27864,27865,27866,27867,27868,27869,27870,27871,
9626327872,27873,27874,27875,27876,27877,27878,27879,27880,27881,27882,27883,
9626427884,27885,27886,27887,27888,27889,27890,27891,27892,27893,27894,27895,
9626527896,27897,27898,27899,27900,27901,27902,27903,27904,27905,27906,27907,
9626627908,27909,27910,27911,27912,27913,27914,27915,27916,27917,27918,27919,
9626727920,27921,27922,27923,27924,27925,27926,27927,27928,27929,27930,27931,
9626827932,27933,27934,27935,27936,27937,27938,27939,27940,27941,27942,27943,
9626927944,27945,27946,27947,27948,27949,27950,27951,27952,27953,27954,27955,
9627027956,27957,27958,27959,27960,27961,27962,27963,27964,27965,27966,27967,
9627127968,27969,27970,27971,27972,27973,27974,27975,27976,27977,27978,27979,
9627227980,27981,27982,27983,27984,27985,27986,27987,27988,27989,27990,27991,
9627327992,27993,27994,27995,27996,27997,27998,27999,28000,28001,28002,28003,
9627428004,28005,28006,28007,28008,28009,28010,28011,28012,28013,28014,28015,
9627528016,28017,28018,28019,28020,28021,28022,28023,28024,28025,28026,28027,
9627628028,28029,28030,28031,28032,28033,28034,28035,28036,28037,28038,28039,
9627728040,28041,28042,28043,28044,28045,28046,28047,28048,28049,28050,28051,
9627828052,28053,28054,28055,28056,28057,28058,28059,28060,28061,28062,28063,
9627928064,28065,28066,28067,28068,28069,28070,28071,28072,28073,28074,28075,
9628028076,28077,28078,28079,28080,28081,28082,28083,28084,28085,28086,28087,
9628128088,28089,28090,28091,28092,28093,28094,28095,28096,28097,28098,28099,
9628228100,28101,28102,28103,28104,28105,28106,28107,28108,28109,28110,28111,
9628328112,28113,28114,28115,28116,28117,28118,28119,28120,28121,28122,28123,
9628428124,28125,28126,28127,28128,28129,28130,28131,28132,28133,28134,28135,
9628528136,28137,28138,28139,28140,28141,28142,28143,28144,28145,28146,28147,
9628628148,28149,28150,28151,28152,28153,28154,28155,28156,28157,28158,28159,
9628728160,28161,28162,28163,28164,28165,28166,28167,28168,28169,28170,28171,
9628828172,28173,28174,28175,28176,28177,28178,28179,28180,28181,28182,28183,
9628928184,28185,28186,28187,28188,28189,28190,28191,28192,28193,28194,28195,
9629028196,28197,28198,28199,28200,28201,28202,28203,28204,28205,28206,28207,
9629128208,28209,28210,28211,28212,28213,28214,28215,28216,28217,28218,28219,
9629228220,28221,28222,28223,28224,28225,28226,28227,28228,28229,28230,28231,
9629328232,28233,28234,28235,28236,28237,28238,28239,28240,28241,28242,28243,
9629428244,28245,28246,28247,28248,28249,28250,28251,28252,28253,28254,28255,
9629528256,28257,28258,28259,28260,28261,28262,28263,28264,28265,28266,28267,
9629628268,28269,28270,28271,28272,28273,28274,28275,28276,28277,28278,28279,
9629728280,28281,28282,28283,28284,28285,28286,28287,28288,28289,28290,28291,
9629828292,28293,28294,28295,28296,28297,28298,28299,28300,28301,28302,28303,
9629928304,28305,28306,28307,28308,28309,28310,28311,28312,28313,28314,28315,
9630028316,28317,28318,28319,28320,28321,28322,28323,28324,28325,28326,28327,
9630128328,28329,28330,28331,28332,28333,28334,28335,28336,28337,28338,28339,
9630228340,28341,28342,28343,28344,28345,28346,28347,28348,28349,28350,28351,
9630328352,28353,28354,28355,28356,28357,28358,28359,28360,28361,28362,28363,
9630428364,28365,28366,28367,28368,28369,28370,28371,28372,28373,28374,28375,
9630528376,28377,28378,28379,28380,28381,28382,28383,28384,28385,28386,28387,
9630628388,28389,28390,28391,28392,28393,28394,28395,28396,28397,28398,28399,
9630728400,28401,28402,28403,28404,28405,28406,28407,28408,28409,28410,28411,
9630828412,28413,28414,28415,28416,28417,28418,28419,28420,28421,28422,28423,
9630928424,28425,28426,28427,28428,28429,28430,28431,28432,28433,28434,28435,
9631028436,28437,28438,28439,28440,28441,28442,28443,28444,28445,28446,28447,
9631128448,28449,28450,28451,28452,28453,28454,28455,28456,28457,28458,28459,
9631228460,28461,28462,28463,28464,28465,28466,28467,28468,28469,28470,28471,
9631328472,28473,28474,28475,28476,28477,28478,28479,28480,28481,28482,28483,
9631428484,28485,28486,28487,28488,28489,28490,28491,28492,28493,28494,28495,
9631528496,28497,28498,28499,28500,28501,28502,28503,28504,28505,28506,28507,
9631628508,28509,28510,28511,28512,28513,28514,28515,28516,28517,28518,28519,
9631728520,28521,28522,28523,28524,28525,28526,28527,28528,28529,28530,28531,
9631828532,28533,28534,28535,28536,28537,28538,28539,28540,28541,28542,28543,
9631928544,28545,28546,28547,28548,28549,28550,28551,28552,28553,28554,28555,
9632028556,28557,28558,28559,28560,28561,28562,28563,28564,28565,28566,28567,
9632128568,28569,28570,28571,28572,28573,28574,28575,28576,28577,28578,28579,
9632228580,28581,28582,28583,28584,28585,28586,28587,28588,28589,28590,28591,
9632328592,28593,28594,28595,28596,28597,28598,28599,28600,28601,28602,28603,
9632428604,28605,28606,28607,28608,28609,28610,28611,28612,28613,28614,28615,
9632528616,28617,28618,28619,28620,28621,28622,28623,28624,28625,28626,28627,
9632628628,28629,28630,28631,28632,28633,28634,28635,28636,28637,28638,28639,
9632728640,28641,28642,28643,28644,28645,28646,28647,28648,28649,28650,28651,
9632828652,28653,28654,28655,28656,28657,28658,28659,28660,28661,28662,28663,
9632928664,28665,28666,28667,28668,28669,28670,28671,28672,28673,28674,28675,
9633028676,28677,28678,28679,28680,28681,28682,28683,28684,28685,28686,28687,
9633128688,28689,28690,28691,28692,28693,28694,28695,28696,28697,28698,28699,
9633228700,28701,28702,28703,28704,28705,28706,28707,28708,28709,28710,28711,
9633328712,28713,28714,28715,28716,28717,28718,28719,28720,28721,28722,28723,
9633428724,28725,28726,28727,28728,28729,28730,28731,28732,28733,28734,28735,
9633528736,28737,28738,28739,28740,28741,28742,28743,28744,28745,28746,28747,
9633628748,28749,28750,28751,28752,28753,28754,28755,28756,28757,28758,28759,
9633728760,28761,28762,28763,28764,28765,28766,28767,28768,28769,28770,28771,
9633828772,28773,28774,28775,28776,28777,28778,28779,28780,28781,28782,28783,
9633928784,28785,28786,28787,28788,28789,28790,28791,28792,28793,28794,28795,
9634028796,28797,28798,28799,28800,28801,28802,28803,28804,28805,28806,28807,
9634128808,28809,28810,28811,28812,28813,28814,28815,28816,28817,28818,28819,
9634228820,28821,28822,28823,28824,28825,28826,28827,28828,28829,28830,28831,
9634328832,28833,28834,28835,28836,28837,28838,28839,28840,28841,28842,28843,
9634428844,28845,28846,28847,28848,28849,28850,28851,28852,28853,28854,28855,
9634528856,28857,28858,28859,28860,28861,28862,28863,28864,28865,28866,28867,
9634628868,28869,28870,28871,28872,28873,28874,28875,28876,28877,28878,28879,
9634728880,28881,28882,28883,28884,28885,28886,28887,28888,28889,28890,28891,
9634828892,28893,28894,28895,28896,28897,28898,28899,28900,28901,28902,28903,
9634928904,28905,28906,28907,28908,28909,28910,28911,28912,28913,28914,28915,
9635028916,28917,28918,28919,28920,28921,28922,28923,28924,28925,28926,28927,
9635128928,28929,28930,28931,28932,28933,28934,28935,28936,28937,28938,28939,
9635228940,28941,28942,28943,28944,28945,28946,28947,28948,28949,28950,28951,
9635328952,28953,28954,28955,28956,28957,28958,28959,28960,28961,28962,28963,
9635428964,28965,28966,28967,28968,28969,28970,28971,28972,28973,28974,28975,
9635528976,28977,28978,28979,28980,28981,28982,28983,28984,28985,28986,28987,
9635628988,28989,28990,28991,28992,28993,28994,28995,28996,28997,28998,28999,
9635729000,29001,29002,29003,29004,29005,29006,29007,29008,29009,29010,29011,
9635829012,29013,29014,29015,29016,29017,29018,29019,29020,29021,29022,29023,
9635929024,29025,29026,29027,29028,29029,29030,29031,29032,29033,29034,29035,
9636029036,29037,29038,29039,29040,29041,29042,29043,29044,29045,29046,29047,
9636129048,29049,29050,29051,29052,29053,29054,29055,29056,29057,29058,29059,
9636229060,29061,29062,29063,29064,29065,29066,29067,29068,29069,29070,29071,
9636329072,29073,29074,29075,29076,29077,29078,29079,29080,29081,29082,29083,
9636429084,29085,29086,29087,29088,29089,29090,29091,29092,29093,29094,29095,
9636529096,29097,29098,29099,29100,29101,29102,29103,29104,29105,29106,29107,
9636629108,29109,29110,29111,29112,29113,29114,29115,29116,29117,29118,29119,
9636729120,29121,29122,29123,29124,29125,29126,29127,29128,29129,29130,29131,
9636829132,29133,29134,29135,29136,29137,29138,29139,29140,29141,29142,29143,
9636929144,29145,29146,29147,29148,29149,29150,29151,29152,29153,29154,29155,
9637029156,29157,29158,29159,29160,29161,29162,29163,29164,29165,29166,29167,
9637129168,29169,29170,29171,29172,29173,29174,29175,29176,29177,29178,29179,
9637229180,29181,29182,29183,29184,29185,29186,29187,29188,29189,29190,29191,
9637329192,29193,29194,29195,29196,29197,29198,29199,29200,29201,29202,29203,
9637429204,29205,29206,29207,29208,29209,29210,29211,29212,29213,29214,29215,
9637529216,29217,29218,29219,29220,29221,29222,29223,29224,29225,29226,29227,
9637629228,29229,29230,29231,29232,29233,29234,29235,29236,29237,29238,29239,
9637729240,29241,29242,29243,29244,29245,29246,29247,29248,29249,29250,29251,
9637829252,29253,29254,29255,29256,29257,29258,29259,29260,29261,29262,29263,
9637929264,29265,29266,29267,29268,29269,29270,29271,29272,29273,29274,29275,
9638029276,29277,29278,29279,29280,29281,29282,29283,29284,29285,29286,29287,
9638129288,29289,29290,29291,29292,29293,29294,29295,29296,29297,29298,29299,
9638229300,29301,29302,29303,29304,29305,29306,29307,29308,29309,29310,29311,
9638329312,29313,29314,29315,29316,29317,29318,29319,29320,29321,29322,29323,
9638429324,29325,29326,29327,29328,29329,29330,29331,29332,29333,29334,29335,
9638529336,29337,29338,29339,29340,29341,29342,29343,29344,29345,29346,29347,
9638629348,29349,29350,29351,29352,29353,29354,29355,29356,29357,29358,29359,
9638729360,29361,29362,29363,29364,29365,29366,29367,29368,29369,29370,29371,
9638829372,29373,29374,29375,29376,29377,29378,29379,29380,29381,29382,29383,
9638929384,29385,29386,29387,29388,29389,29390,29391,29392,29393,29394,29395,
9639029396,29397,29398,29399,29400,29401,29402,29403,29404,29405,29406,29407,
9639129408,29409,29410,29411,29412,29413,29414,29415,29416,29417,29418,29419,
9639229420,29421,29422,29423,29424,29425,29426,29427,29428,29429,29430,29431,
9639329432,29433,29434,29435,29436,29437,29438,29439,29440,29441,29442,29443,
9639429444,29445,29446,29447,29448,29449,29450,29451,29452,29453,29454,29455,
9639529456,29457,29458,29459,29460,29461,29462,29463,29464,29465,29466,29467,
9639629468,29469,29470,29471,29472,29473,29474,29475,29476,29477,29478,29479,
9639729480,29481,29482,29483,29484,29485,29486,29487,29488,29489,29490,29491,
9639829492,29493,29494,29495,29496,29497,29498,29499,29500,29501,29502,29503,
9639929504,29505,29506,29507,29508,29509,29510,29511,29512,29513,29514,29515,
9640029516,29517,29518,29519,29520,29521,29522,29523,29524,29525,29526,29527,
9640129528,29529,29530,29531,29532,29533,29534,29535,29536,29537,29538,29539,
9640229540,29541,29542,29543,29544,29545,29546,29547,29548,29549,29550,29551,
9640329552,29553,29554,29555,29556,29557,29558,29559,29560,29561,29562,29563,
9640429564,29565,29566,29567,29568,29569,29570,29571,29572,29573,29574,29575,
9640529576,29577,29578,29579,29580,29581,29582,29583,29584,29585,29586,29587,
9640629588,29589,29590,29591,29592,29593,29594,29595,29596,29597,29598,29599,
9640729600,29601,29602,29603,29604,29605,29606,29607,29608,29609,29610,29611,
9640829612,29613,29614,29615,29616,29617,29618,29619,29620,29621,29622,29623,
9640929624,29625,29626,29627,29628,29629,29630,29631,29632,29633,29634,29635,
9641029636,29637,29638,29639,29640,29641,29642,29643,29644,29645,29646,29647,
9641129648,29649,29650,29651,29652,29653,29654,29655,29656,29657,29658,29659,
9641229660,29661,29662,29663,29664,29665,29666,29667,29668,29669,29670,29671,
9641329672,29673,29674,29675,29676,29677,29678,29679,29680,29681,29682,29683,
9641429684,29685,29686,29687,29688,29689,29690,29691,29692,29693,29694,29695,
9641529696,29697,29698,29699,29700,29701,29702,29703,29704,29705,29706,29707,
9641629708,29709,29710,29711,29712,29713,29714,29715,29716,29717,29718,29719,
9641729720,29721,29722,29723,29724,29725,29726,29727,29728,29729,29730,29731,
9641829732,29733,29734,29735,29736,29737,29738,29739,29740,29741,29742,29743,
9641929744,29745,29746,29747,29748,29749,29750,29751,29752,29753,29754,29755,
9642029756,29757,29758,29759,29760,29761,29762,29763,29764,29765,29766,29767,
9642129768,29769,29770,29771,29772,29773,29774,29775,29776,29777,29778,29779,
9642229780,29781,29782,29783,29784,29785,29786,29787,29788,29789,29790,29791,
9642329792,29793,29794,29795,29796,29797,29798,29799,29800,29801,29802,29803,
9642429804,29805,29806,29807,29808,29809,29810,29811,29812,29813,29814,29815,
9642529816,29817,29818,29819,29820,29821,29822,29823,29824,29825,29826,29827,
9642629828,29829,29830,29831,29832,29833,29834,29835,29836,29837,29838,29839,
9642729840,29841,29842,29843,29844,29845,29846,29847,29848,29849,29850,29851,
9642829852,29853,29854,29855,29856,29857,29858,29859,29860,29861,29862,29863,
9642929864,29865,29866,29867,29868,29869,29870,29871,29872,29873,29874,29875,
9643029876,29877,29878,29879,29880,29881,29882,29883,29884,29885,29886,29887,
9643129888,29889,29890,29891,29892,29893,29894,29895,29896,29897,29898,29899,
9643229900,29901,29902,29903,29904,29905,29906,29907,29908,29909,29910,29911,
9643329912,29913,29914,29915,29916,29917,29918,29919,29920,29921,29922,29923,
9643429924,29925,29926,29927,29928,29929,29930,29931,29932,29933,29934,29935,
9643529936,29937,29938,29939,29940,29941,29942,29943,29944,29945,29946,29947,
9643629948,29949,29950,29951,29952,29953,29954,29955,29956,29957,29958,29959,
9643729960,29961,29962,29963,29964,29965,29966,29967,29968,29969,29970,29971,
9643829972,29973,29974,29975,29976,29977,29978,29979,29980,29981,29982,29983,
9643929984,29985,29986,29987,29988,29989,29990,29991,29992,29993,29994,29995,
9644029996,29997,29998,29999,30000,30001,30002,30003,30004,30005,30006,30007,
9644130008,30009,30010,30011,30012,30013,30014,30015,30016,30017,30018,30019,
9644230020,30021,30022,30023,30024,30025,30026,30027,30028,30029,30030,30031,
9644330032,30033,30034,30035,30036,30037,30038,30039,30040,30041,30042,30043,
9644430044,30045,30046,30047,30048,30049,30050,30051,30052,30053,30054,30055,
9644530056,30057,30058,30059,30060,30061,30062,30063,30064,30065,30066,30067,
9644630068,30069,30070,30071,30072,30073,30074,30075,30076,30077,30078,30079,
9644730080,30081,30082,30083,30084,30085,30086,30087,30088,30089,30090,30091,
9644830092,30093,30094,30095,30096,30097,30098,30099,30100,30101,30102,30103,
9644930104,30105,30106,30107,30108,30109,30110,30111,30112,30113,30114,30115,
9645030116,30117,30118,30119,30120,30121,30122,30123,30124,30125,30126,30127,
9645130128,30129,30130,30131,30132,30133,30134,30135,30136,30137,30138,30139,
9645230140,30141,30142,30143,30144,30145,30146,30147,30148,30149,30150,30151,
9645330152,30153,30154,30155,30156,30157,30158,30159,30160,30161,30162,30163,
9645430164,30165,30166,30167,30168,30169,30170,30171,30172,30173,30174,30175,
9645530176,30177,30178,30179,30180,30181,30182,30183,30184,30185,30186,30187,
9645630188,30189,30190,30191,30192,30193,30194,30195,30196,30197,30198,30199,
9645730200,30201,30202,30203,30204,30205,30206,30207,30208,30209,30210,30211,
9645830212,30213,30214,30215,30216,30217,30218,30219,30220,30221,30222,30223,
9645930224,30225,30226,30227,30228,30229,30230,30231,30232,30233,30234,30235,
9646030236,30237,30238,30239,30240,30241,30242,30243,30244,30245,30246,30247,
9646130248,30249,30250,30251,30252,30253,30254,30255,30256,30257,30258,30259,
9646230260,30261,30262,30263,30264,30265,30266,30267,30268,30269,30270,30271,
9646330272,30273,30274,30275,30276,30277,30278,30279,30280,30281,30282,30283,
9646430284,30285,30286,30287,30288,30289,30290,30291,30292,30293,30294,30295,
9646530296,30297,30298,30299,30300,30301,30302,30303,30304,30305,30306,30307,
9646630308,30309,30310,30311,30312,30313,30314,30315,30316,30317,30318,30319,
9646730320,30321,30322,30323,30324,30325,30326,30327,30328,30329,30330,30331,
9646830332,30333,30334,30335,30336,30337,30338,30339,30340,30341,30342,30343,
9646930344,30345,30346,30347,30348,30349,30350,30351,30352,30353,30354,30355,
9647030356,30357,30358,30359,30360,30361,30362,30363,30364,30365,30366,30367,
9647130368,30369,30370,30371,30372,30373,30374,30375,30376,30377,30378,30379,
9647230380,30381,30382,30383,30384,30385,30386,30387,30388,30389,30390,30391,
9647330392,30393,30394,30395,30396,30397,30398,30399,30400,30401,30402,30403,
9647430404,30405,30406,30407,30408,30409,30410,30411,30412,30413,30414,30415,
9647530416,30417,30418,30419,30420,30421,30422,30423,30424,30425,30426,30427,
9647630428,30429,30430,30431,30432,30433,30434,30435,30436,30437,30438,30439,
9647730440,30441,30442,30443,30444,30445,30446,30447,30448,30449,30450,30451,
9647830452,30453,30454,30455,30456,30457,30458,30459,30460,30461,30462,30463,
9647930464,30465,30466,30467,30468,30469,30470,30471,30472,30473,30474,30475,
9648030476,30477,30478,30479,30480,30481,30482,30483,30484,30485,30486,30487,
9648130488,30489,30490,30491,30492,30493,30494,30495,30496,30497,30498,30499,
9648230500,30501,30502,30503,30504,30505,30506,30507,30508,30509,30510,30511,
9648330512,30513,30514,30515,30516,30517,30518,30519,30520,30521,30522,30523,
9648430524,30525,30526,30527,30528,30529,30530,30531,30532,30533,30534,30535,
9648530536,30537,30538,30539,30540,30541,30542,30543,30544,30545,30546,30547,
9648630548,30549,30550,30551,30552,30553,30554,30555,30556,30557,30558,30559,
9648730560,30561,30562,30563,30564,30565,30566,30567,30568,30569,30570,30571,
9648830572,30573,30574,30575,30576,30577,30578,30579,30580,30581,30582,30583,
9648930584,30585,30586,30587,30588,30589,30590,30591,30592,30593,30594,30595,
9649030596,30597,30598,30599,30600,30601,30602,30603,30604,30605,30606,30607,
9649130608,30609,30610,30611,30612,30613,30614,30615,30616,30617,30618,30619,
9649230620,30621,30622,30623,30624,30625,30626,30627,30628,30629,30630,30631,
9649330632,30633,30634,30635,30636,30637,30638,30639,30640,30641,30642,30643,
9649430644,30645,30646,30647,30648,30649,30650,30651,30652,30653,30654,30655,
9649530656,30657,30658,30659,30660,30661,30662,30663,30664,30665,30666,30667,
9649630668,30669,30670,30671,30672,30673,30674,30675,30676,30677,30678,30679,
9649730680,30681,30682,30683,30684,30685,30686,30687,30688,30689,30690,30691,
9649830692,30693,30694,30695,30696,30697,30698,30699,30700,30701,30702,30703,
9649930704,30705,30706,30707,30708,30709,30710,30711,30712,30713,30714,30715,
9650030716,30717,30718,30719,30720,30721,30722,30723,30724,30725,30726,30727,
9650130728,30729,30730,30731,30732,30733,30734,30735,30736,30737,30738,30739,
9650230740,30741,30742,30743,30744,30745,30746,30747,30748,30749,30750,30751,
9650330752,30753,30754,30755,30756,30757,30758,30759,30760,30761,30762,30763,
9650430764,30765,30766,30767,30768,30769,30770,30771,30772,30773,30774,30775,
9650530776,30777,30778,30779,30780,30781,30782,30783,30784,30785,30786,30787,
9650630788,30789,30790,30791,30792,30793,30794,30795,30796,30797,30798,30799,
9650730800,30801,30802,30803,30804,30805,30806,30807,30808,30809,30810,30811,
9650830812,30813,30814,30815,30816,30817,30818,30819,30820,30821,30822,30823,
9650930824,30825,30826,30827,30828,30829,30830,30831,30832,30833,30834,30835,
9651030836,30837,30838,30839,30840,30841,30842,30843,30844,30845,30846,30847,
9651130848,30849,30850,30851,30852,30853,30854,30855,30856,30857,30858,30859,
9651230860,30861,30862,30863,30864,30865,30866,30867,30868,30869,30870,30871,
9651330872,30873,30874,30875,30876,30877,30878,30879,30880,30881,30882,30883,
9651430884,30885,30886,30887,30888,30889,30890,30891,30892,30893,30894,30895,
9651530896,30897,30898,30899,30900,30901,30902,30903,30904,30905,30906,30907,
9651630908,30909,30910,30911,30912,30913,30914,30915,30916,30917,30918,30919,
9651730920,30921,30922,30923,30924,30925,30926,30927,30928,30929,30930,30931,
9651830932,30933,30934,30935,30936,30937,30938,30939,30940,30941,30942,30943,
9651930944,30945,30946,30947,30948,30949,30950,30951,30952,30953,30954,30955,
9652030956,30957,30958,30959,30960,30961,30962,30963,30964,30965,30966,30967,
9652130968,30969,30970,30971,30972,30973,30974,30975,30976,30977,30978,30979,
9652230980,30981,30982,30983,30984,30985,30986,30987,30988,30989,30990,30991,
9652330992,30993,30994,30995,30996,30997,30998,30999,31000,31001,31002,31003,
9652431004,31005,31006,31007,31008,31009,31010,31011,31012,31013,31014,31015,
9652531016,31017,31018,31019,31020,31021,31022,31023,31024,31025,31026,31027,
9652631028,31029,31030,31031,31032,31033,31034,31035,31036,31037,31038,31039,
9652731040,31041,31042,31043,31044,31045,31046,31047,31048,31049,31050,31051,
9652831052,31053,31054,31055,31056,31057,31058,31059,31060,31061,31062,31063,
9652931064,31065,31066,31067,31068,31069,31070,31071,31072,31073,31074,31075,
9653031076,31077,31078,31079,31080,31081,31082,31083,31084,31085,31086,31087,
9653131088,31089,31090,31091,31092,31093,31094,31095,31096,31097,31098,31099,
9653231100,31101,31102,31103,31104,31105,31106,31107,31108,31109,31110,31111,
9653331112,31113,31114,31115,31116,31117,31118,31119,31120,31121,31122,31123,
9653431124,31125,31126,31127,31128,31129,31130,31131,31132,31133,31134,31135,
9653531136,31137,31138,31139,31140,31141,31142,31143,31144,31145,31146,31147,
9653631148,31149,31150,31151,31152,31153,31154,31155,31156,31157,31158,31159,
9653731160,31161,31162,31163,31164,31165,31166,31167,31168,31169,31170,31171,
9653831172,31173,31174,31175,31176,31177,31178,31179,31180,31181,31182,31183,
9653931184,31185,31186,31187,31188,31189,31190,31191,31192,31193,31194,31195,
9654031196,31197,31198,31199,31200,31201,31202,31203,31204,31205,31206,31207,
9654131208,31209,31210,31211,31212,31213,31214,31215,31216,31217,31218,31219,
9654231220,31221,31222,31223,31224,31225,31226,31227,31228,31229,31230,31231,
9654331232,31233,31234,31235,31236,31237,31238,31239,31240,31241,31242,31243,
9654431244,31245,31246,31247,31248,31249,31250,31251,31252,31253,31254,31255,
9654531256,31257,31258,31259,31260,31261,31262,31263,31264,31265,31266,31267,
9654631268,31269,31270,31271,31272,31273,31274,31275,31276,31277,31278,31279,
9654731280,31281,31282,31283,31284,31285,31286,31287,31288,31289,31290,31291,
9654831292,31293,31294,31295,31296,31297,31298,31299,31300,31301,31302,31303,
9654931304,31305,31306,31307,31308,31309,31310,31311,31312,31313,31314,31315,
9655031316,31317,31318,31319,31320,31321,31322,31323,31324,31325,31326,31327,
9655131328,31329,31330,31331,31332,31333,31334,31335,31336,31337,31338,31339,
9655231340,31341,31342,31343,31344,31345,31346,31347,31348,31349,31350,31351,
9655331352,31353,31354,31355,31356,31357,31358,31359,31360,31361,31362,31363,
9655431364,31365,31366,31367,31368,31369,31370,31371,31372,31373,31374,31375,
9655531376,31377,31378,31379,31380,31381,31382,31383,31384,31385,31386,31387,
9655631388,31389,31390,31391,31392,31393,31394,31395,31396,31397,31398,31399,
9655731400,31401,31402,31403,31404,31405,31406,31407,31408,31409,31410,31411,
9655831412,31413,31414,31415,31416,31417,31418,31419,31420,31421,31422,31423,
9655931424,31425,31426,31427,31428,31429,31430,31431,31432,31433,31434,31435,
9656031436,31437,31438,31439,31440,31441,31442,31443,31444,31445,31446,31447,
9656131448,31449,31450,31451,31452,31453,31454,31455,31456,31457,31458,31459,
9656231460,31461,31462,31463,31464,31465,31466,31467,31468,31469,31470,31471,
9656331472,31473,31474,31475,31476,31477,31478,31479,31480,31481,31482,31483,
9656431484,31485,31486,31487,31488,31489,31490,31491,31492,31493,31494,31495,
9656531496,31497,31498,31499,31500,31501,31502,31503,31504,31505,31506,31507,
9656631508,31509,31510,31511,31512,31513,31514,31515,31516,31517,31518,31519,
9656731520,31521,31522,31523,31524,31525,31526,31527,31528,31529,31530,31531,
9656831532,31533,31534,31535,31536,31537,31538,31539,31540,31541,31542,31543,
9656931544,31545,31546,31547,31548,31549,31550,31551,31552,31553,31554,31555,
9657031556,31557,31558,31559,31560,31561,31562,31563,31564,31565,31566,31567,
9657131568,31569,31570,31571,31572,31573,31574,31575,31576,31577,31578,31579,
9657231580,31581,31582,31583,31584,31585,31586,31587,31588,31589,31590,31591,
9657331592,31593,31594,31595,31596,31597,31598,31599,31600,31601,31602,31603,
9657431604,31605,31606,31607,31608,31609,31610,31611,31612,31613,31614,31615,
9657531616,31617,31618,31619,31620,31621,31622,31623,31624,31625,31626,31627,
9657631628,31629,31630,31631,31632,31633,31634,31635,31636,31637,31638,31639,
9657731640,31641,31642,31643,31644,31645,31646,31647,31648,31649,31650,31651,
9657831652,31653,31654,31655,31656,31657,31658,31659,31660,31661,31662,31663,
9657931664,31665,31666,31667,31668,31669,31670,31671,31672,31673,31674,31675,
9658031676,31677,31678,31679,31680,31681,31682,31683,31684,31685,31686,31687,
9658131688,31689,31690,31691,31692,31693,31694,31695,31696,31697,31698,31699,
9658231700,31701,31702,31703,31704,31705,31706,31707,31708,31709,31710,31711,
9658331712,31713,31714,31715,31716,31717,31718,31719,31720,31721,31722,31723,
9658431724,31725,31726,31727,31728,31729,31730,31731,31732,31733,31734,31735,
9658531736,31737,31738,31739,31740,31741,31742,31743,31744,31745,31746,31747,
9658631748,31749,31750,31751,31752,31753,31754,31755,31756,31757,31758,31759,
9658731760,31761,31762,31763,31764,31765,31766,31767,31768,31769,31770,31771,
9658831772,31773,31774,31775,31776,31777,31778,31779,31780,31781,31782,31783,
9658931784,31785,31786,31787,31788,31789,31790,31791,31792,31793,31794,31795,
9659031796,31797,31798,31799,31800,31801,31802,31803,31804,31805,31806,31807,
9659131808,31809,31810,31811,31812,31813,31814,31815,31816,31817,31818,31819,
9659231820,31821,31822,31823,31824,31825,31826,31827,31828,31829,31830,31831,
9659331832,31833,31834,31835,31836,31837,31838,31839,31840,31841,31842,31843,
9659431844,31845,31846,31847,31848,31849,31850,31851,31852,31853,31854,31855,
9659531856,31857,31858,31859,31860,31861,31862,31863,31864,31865,31866,31867,
9659631868,31869,31870,31871,31872,31873,31874,31875,31876,31877,31878,31879,
9659731880,31881,31882,31883,31884,31885,31886,31887,31888,31889,31890,31891,
9659831892,31893,31894,31895,31896,31897,31898,31899,31900,31901,31902,31903,
9659931904,31905,31906,31907,31908,31909,31910,31911,31912,31913,31914,31915,
9660031916,31917,31918,31919,31920,31921,31922,31923,31924,31925,31926,31927,
9660131928,31929,31930,31931,31932,31933,31934,31935,31936,31937,31938,31939,
9660231940,31941,31942,31943,31944,31945,31946,31947,31948,31949,31950,31951,
9660331952,31953,31954,31955,31956,31957,31958,31959,31960,31961,31962,31963,
9660431964,31965,31966,31967,31968,31969,31970,31971,31972,31973,31974,31975,
9660531976,31977,31978,31979,31980,31981,31982,31983,31984,31985,31986,31987,
9660631988,31989,31990,31991,31992,31993,31994,31995,31996,31997,31998,31999,
9660732000,32001,32002,32003,32004,32005,32006,32007,32008,32009,32010,32011,
9660832012,32013,32014,32015,32016,32017,32018,32019,32020,32021,32022,32023,
9660932024,32025,32026,32027,32028,32029,32030,32031,32032,32033,32034,32035,
9661032036,32037,32038,32039,32040,32041,32042,32043,32044,32045,32046,32047,
9661132048,32049,32050,32051,32052,32053,32054,32055,32056,32057,32058,32059,
9661232060,32061,32062,32063,32064,32065,32066,32067,32068,32069,32070,32071,
9661332072,32073,32074,32075,32076,32077,32078,32079,32080,32081,32082,32083,
9661432084,32085,32086,32087,32088,32089,32090,32091,32092,32093,32094,32095,
9661532096,32097,32098,32099,32100,32101,32102,32103,32104,32105,32106,32107,
9661632108,32109,32110,32111,32112,32113,32114,32115,32116,32117,32118,32119,
9661732120,32121,32122,32123,32124,32125,32126,32127,32128,32129,32130,32131,
9661832132,32133,32134,32135,32136,32137,32138,32139,32140,32141,32142,32143,
9661932144,32145,32146,32147,32148,32149,32150,32151,32152,32153,32154,32155,
9662032156,32157,32158,32159,32160,32161,32162,32163,32164,32165,32166,32167,
9662132168,32169,32170,32171,32172,32173,32174,32175,32176,32177,32178,32179,
9662232180,32181,32182,32183,32184,32185,32186,32187,32188,32189,32190,32191,
9662332192,32193,32194,32195,32196,32197,32198,32199,32200,32201,32202,32203,
9662432204,32205,32206,32207,32208,32209,32210,32211,32212,32213,32214,32215,
9662532216,32217,32218,32219,32220,32221,32222,32223,32224,32225,32226,32227,
9662632228,32229,32230,32231,32232,32233,32234,32235,32236,32237,32238,32239,
9662732240,32241,32242,32243,32244,32245,32246,32247,32248,32249,32250,32251,
9662832252,32253,32254,32255,32256,32257,32258,32259,32260,32261,32262,32263,
9662932264,32265,32266,32267,32268,32269,32270,32271,32272,32273,32274,32275,
9663032276,32277,32278,32279,32280,32281,32282,32283,32284,32285,32286,32287,
9663132288,32289,32290,32291,32292,32293,32294,32295,32296,32297,32298,32299,
9663232300,32301,32302,32303,32304,32305,32306,32307,32308,32309,32310,32311,
9663332312,32313,32314,32315,32316,32317,32318,32319,32320,32321,32322,32323,
9663432324,32325,32326,32327,32328,32329,32330,32331,32332,32333,32334,32335,
9663532336,32337,32338,32339,32340,32341,32342,32343,32344,32345,32346,32347,
9663632348,32349,32350,32351,32352,32353,32354,32355,32356,32357,32358,32359,
9663732360,32361,32362,32363,32364,32365,32366,32367,32368,32369,32370,32371,
9663832372,32373,32374,32375,32376,32377,32378,32379,32380,32381,32382,32383,
9663932384,32385,32386,32387,32388,32389,32390,32391,32392,32393,32394,32395,
9664032396,32397,32398,32399,32400,32401,32402,32403,32404,32405,32406,32407,
9664132408,32409,32410,32411,32412,32413,32414,32415,32416,32417,32418,32419,
9664232420,32421,32422,32423,32424,32425,32426,32427,32428,32429,32430,32431,
9664332432,32433,32434,32435,32436,32437,32438,32439,32440,32441,32442,32443,
9664432444,32445,32446,32447,32448,32449,32450,32451,32452,32453,32454,32455,
9664532456,32457,32458,32459,32460,32461,32462,32463,32464,32465,32466,32467,
9664632468,32469,32470,32471,32472,32473,32474,32475,32476,32477,32478,32479,
9664732480,32481,32482,32483,32484,32485,32486,32487,32488,32489,32490,32491,
9664832492,32493,32494,32495,32496,32497,32498,32499,32500,32501,32502,32503,
9664932504,32505,32506,32507,32508,32509,32510,32511,32512,32513,32514,32515,
9665032516,32517,32518,32519,32520,32521,32522,32523,32524,32525,32526,32527,
9665132528,32529,32530,32531,32532,32533,32534,32535,32536,32537,32538,32539,
9665232540,32541,32542,32543,32544,32545,32546,32547,32548,32549,32550,32551,
9665332552,32553,32554,32555,32556,32557,32558,32559,32560,32561,32562,32563,
9665432564,32565,32566,32567,32568,32569,32570,32571,32572,32573,32574,32575,
9665532576,32577,32578,32579,32580,32581,32582,32583,32584,32585,32586,32587,
9665632588,32589,32590,32591,32592,32593,32594,32595,32596,32597,32598,32599,
9665732600,32601,32602,32603,32604,32605,32606,32607,32608,32609,32610,32611,
9665832612,32613,32614,32615,32616,32617,32618,32619,32620,32621,32622,32623,
9665932624,32625,32626,32627,32628,32629,32630,32631,32632,32633,32634,32635,
9666032636,32637,32638,32639,32640,32641,32642,32643,32644,32645,32646,32647,
9666132648,32649,32650,32651,32652,32653,32654,32655,32656,32657,32658,32659,
9666232660,32661,32662,32663,32664,32665,32666,32667,32668,32669,32670,32671,
9666332672,32673,32674,32675,32676,32677,32678,32679,32680,32681,32682,32683,
9666432684,32685,32686,32687,32688,32689,32690,32691,32692,32693,32694,32695,
9666532696,32697,32698,32699,32700,32701,32702,32703,32704,32705,32706,32707,
9666632708,32709,32710,32711,32712,32713,32714,32715,32716,32717,32718,32719,
9666732720,32721,32722,32723,32724,32725,32726,32727,32728,32729,32730,32731,
9666832732,32733,32734,32735,32736,32737,32738,32739,32740,32741,32742,32743,
9666932744,32745,32746,32747,32748,32749,32750,32751,32752,32753,32754,32755,
9667032756,32757,32758,32759,32760,32761,32762,32763,32764,32765,32766,32767,
9667132768L,32769L,32770L,32771L,32772L,32773L,32774L,32775L,32776L,32777L,
9667232778L,32779L,32780L,32781L,32782L,32783L,32784L,32785L,32786L,32787L,
9667332788L,32789L,32790L,32791L,32792L,32793L,32794L,32795L,32796L,32797L,
9667432798L,32799L,32800L,32801L,32802L,32803L,32804L,32805L,32806L,32807L,
9667532808L,32809L,32810L,32811L,32812L,32813L,32814L,32815L,32816L,32817L,
9667632818L,32819L,32820L,32821L,32822L,32823L,32824L,32825L,32826L,32827L,
9667732828L,32829L,32830L,32831L,32832L,32833L,32834L,32835L,32836L,32837L,
9667832838L,32839L,32840L,32841L,32842L,32843L,32844L,32845L,32846L,32847L,
9667932848L,32849L,32850L,32851L,32852L,32853L,32854L,32855L,32856L,32857L,
9668032858L,32859L,32860L,32861L,32862L,32863L,32864L,32865L,32866L,32867L,
9668132868L,32869L,32870L,32871L,32872L,32873L,32874L,32875L,32876L,32877L,
9668232878L,32879L,32880L,32881L,32882L,32883L,32884L,32885L,32886L,32887L,
9668332888L,32889L,32890L,32891L,32892L,32893L,32894L,32895L,32896L,32897L,
9668432898L,32899L,32900L,32901L,32902L,32903L,32904L,32905L,32906L,32907L,
9668532908L,32909L,32910L,32911L,32912L,32913L,32914L,32915L,32916L,32917L,
9668632918L,32919L,32920L,32921L,32922L,32923L,32924L,32925L,32926L,32927L,
9668732928L,32929L,32930L,32931L,32932L,32933L,32934L,32935L,32936L,32937L,
9668832938L,32939L,32940L,32941L,32942L,32943L,32944L,32945L,32946L,32947L,
9668932948L,32949L,32950L,32951L,32952L,32953L,32954L,32955L,32956L,32957L,
9669032958L,32959L,32960L,32961L,32962L,32963L,32964L,32965L,32966L,32967L,
9669132968L,32969L,32970L,32971L,32972L,32973L,32974L,32975L,32976L,32977L,
9669232978L,32979L,32980L,32981L,32982L,32983L,32984L,32985L,32986L,32987L,
9669332988L,32989L,32990L,32991L,32992L,32993L,32994L,32995L,32996L,32997L,
9669432998L,32999L,33000L,33001L,33002L,33003L,33004L,33005L,33006L,33007L,
9669533008L,33009L,33010L,33011L,33012L,33013L,33014L,33015L,33016L,33017L,
9669633018L,33019L,33020L,33021L,33022L,33023L,33024L,33025L,33026L,33027L,
9669733028L,33029L,33030L,33031L,33032L,33033L,33034L,33035L,33036L,33037L,
9669833038L,33039L,33040L,33041L,33042L,33043L,33044L,33045L,33046L,33047L,
9669933048L,33049L,33050L,33051L,33052L,33053L,33054L,33055L,33056L,33057L,
9670033058L,33059L,33060L,33061L,33062L,33063L,33064L,33065L,33066L,33067L,
9670133068L,33069L,33070L,33071L,33072L,33073L,33074L,33075L,33076L,33077L,
9670233078L,33079L,33080L,33081L,33082L,33083L,33084L,33085L,33086L,33087L,
9670333088L,33089L,33090L,33091L,33092L,33093L,33094L,33095L,33096L,33097L,
9670433098L,33099L,33100L,33101L,33102L,33103L,33104L,33105L,33106L,33107L,
9670533108L,33109L,33110L,33111L,33112L,33113L,33114L,33115L,33116L,33117L,
9670633118L,33119L,33120L,33121L,33122L,33123L,33124L,33125L,33126L,33127L,
9670733128L,33129L,33130L,33131L,33132L,33133L,33134L,33135L,33136L,33137L,
9670833138L,33139L,33140L,33141L,33142L,33143L,33144L,33145L,33146L,33147L,
9670933148L,33149L,33150L,33151L,33152L,33153L,33154L,33155L,33156L,33157L,
9671033158L,33159L,33160L,33161L,33162L,33163L,33164L,33165L,33166L,33167L,
9671133168L,33169L,33170L,33171L,33172L,33173L,33174L,33175L,33176L,33177L,
9671233178L,33179L,33180L,33181L,33182L,33183L,33184L,33185L,33186L,33187L,
9671333188L,33189L,33190L,33191L,33192L,33193L,33194L,33195L,33196L,33197L,
9671433198L,33199L,33200L,33201L,33202L,33203L,33204L,33205L,33206L,33207L,
9671533208L,33209L,33210L,33211L,33212L,33213L,33214L,33215L,33216L,33217L,
9671633218L,33219L,33220L,33221L,33222L,33223L,33224L,33225L,33226L,33227L,
9671733228L,33229L,33230L,33231L,33232L,33233L,33234L,33235L,33236L,33237L,
9671833238L,33239L,33240L,33241L,33242L,33243L,33244L,33245L,33246L,33247L,
9671933248L,33249L,33250L,33251L,33252L,33253L,33254L,33255L,33256L,33257L,
9672033258L,33259L,33260L,33261L,33262L,33263L,33264L,33265L,33266L,33267L,
9672133268L,33269L,33270L,33271L,33272L,33273L,33274L,33275L,33276L,33277L,
9672233278L,33279L,33280L,33281L,33282L,33283L,33284L,33285L,33286L,33287L,
9672333288L,33289L,33290L,33291L,33292L,33293L,33294L,33295L,33296L,33297L,
9672433298L,33299L,33300L,33301L,33302L,33303L,33304L,33305L,33306L,33307L,
9672533308L,33309L,33310L,33311L,33312L,33313L,33314L,33315L,33316L,33317L,
9672633318L,33319L,33320L,33321L,33322L,33323L,33324L,33325L,33326L,33327L,
9672733328L,33329L,33330L,33331L,33332L,33333L,33334L,33335L,33336L,33337L,
9672833338L,33339L,33340L,33341L,33342L,33343L,33344L,33345L,33346L,33347L,
9672933348L,33349L,33350L,33351L,33352L,33353L,33354L,33355L,33356L,33357L,
9673033358L,33359L,33360L,33361L,33362L,33363L,33364L,33365L,33366L,33367L,
9673133368L,33369L,33370L,33371L,33372L,33373L,33374L,33375L,33376L,33377L,
9673233378L,33379L,33380L,33381L,33382L,33383L,33384L,33385L,33386L,33387L,
9673333388L,33389L,33390L,33391L,33392L,33393L,33394L,33395L,33396L,33397L,
9673433398L,33399L,33400L,33401L,33402L,33403L,33404L,33405L,33406L,33407L,
9673533408L,33409L,33410L,33411L,33412L,33413L,33414L,33415L,33416L,33417L,
9673633418L,33419L,33420L,33421L,33422L,33423L,33424L,33425L,33426L,33427L,
9673733428L,33429L,33430L,33431L,33432L,33433L,33434L,33435L,33436L,33437L,
9673833438L,33439L,33440L,33441L,33442L,33443L,33444L,33445L,33446L,33447L,
9673933448L,33449L,33450L,33451L,33452L,33453L,33454L,33455L,33456L,33457L,
9674033458L,33459L,33460L,33461L,33462L,33463L,33464L,33465L,33466L,33467L,
9674133468L,33469L,33470L,33471L,33472L,33473L,33474L,33475L,33476L,33477L,
9674233478L,33479L,33480L,33481L,33482L,33483L,33484L,33485L,33486L,33487L,
9674333488L,33489L,33490L,33491L,33492L,33493L,33494L,33495L,33496L,33497L,
9674433498L,33499L,33500L,33501L,33502L,33503L,33504L,33505L,33506L,33507L,
9674533508L,33509L,33510L,33511L,33512L,33513L,33514L,33515L,33516L,33517L,
9674633518L,33519L,33520L,33521L,33522L,33523L,33524L,33525L,33526L,33527L,
9674733528L,33529L,33530L,33531L,33532L,33533L,33534L,33535L,33536L,33537L,
9674833538L,33539L,33540L,33541L,33542L,33543L,33544L,33545L,33546L,33547L,
9674933548L,33549L,33550L,33551L,33552L,33553L,33554L,33555L,33556L,33557L,
9675033558L,33559L,33560L,33561L,33562L,33563L,33564L,33565L,33566L,33567L,
9675133568L,33569L,33570L,33571L,33572L,33573L,33574L,33575L,33576L,33577L,
9675233578L,33579L,33580L,33581L,33582L,33583L,33584L,33585L,33586L,33587L,
9675333588L,33589L,33590L,33591L,33592L,33593L,33594L,33595L,33596L,33597L,
9675433598L,33599L,33600L,33601L,33602L,33603L,33604L,33605L,33606L,33607L,
9675533608L,33609L,33610L,33611L,33612L,33613L,33614L,33615L,33616L,33617L,
9675633618L,33619L,33620L,33621L,33622L,33623L,33624L,33625L,33626L,33627L,
9675733628L,33629L,33630L,33631L,33632L,33633L,33634L,33635L,33636L,33637L,
9675833638L,33639L,33640L,33641L,33642L,33643L,33644L,33645L,33646L,33647L,
9675933648L,33649L,33650L,33651L,33652L,33653L,33654L,33655L,33656L,33657L,
9676033658L,33659L,33660L,33661L,33662L,33663L,33664L,33665L,33666L,33667L,
9676133668L,33669L,33670L,33671L,33672L,33673L,33674L,33675L,33676L,33677L,
9676233678L,33679L,33680L,33681L,33682L,33683L,33684L,33685L,33686L,33687L,
9676333688L,33689L,33690L,33691L,33692L,33693L,33694L,33695L,33696L,33697L,
9676433698L,33699L,33700L,33701L,33702L,33703L,33704L,33705L,33706L,33707L,
9676533708L,33709L,33710L,33711L,33712L,33713L,33714L,33715L,33716L,33717L,
9676633718L,33719L,33720L,33721L,33722L,33723L,33724L,33725L,33726L,33727L,
9676733728L,33729L,33730L,33731L,33732L,33733L,33734L,33735L,33736L,33737L,
9676833738L,33739L,33740L,33741L,33742L,33743L,33744L,33745L,33746L,33747L,
9676933748L,33749L,33750L,33751L,33752L,33753L,33754L,33755L,33756L,33757L,
9677033758L,33759L,33760L,33761L,33762L,33763L,33764L,33765L,33766L,33767L,
9677133768L,33769L,33770L,33771L,33772L,33773L,33774L,33775L,33776L,33777L,
9677233778L,33779L,33780L,33781L,33782L,33783L,33784L,33785L,33786L,33787L,
9677333788L,33789L,33790L,33791L,33792L,33793L,33794L,33795L,33796L,33797L,
9677433798L,33799L,33800L,33801L,33802L,33803L,33804L,33805L,33806L,33807L,
9677533808L,33809L,33810L,33811L,33812L,33813L,33814L,33815L,33816L,33817L,
9677633818L,33819L,33820L,33821L,33822L,33823L,33824L,33825L,33826L,33827L,
9677733828L,33829L,33830L,33831L,33832L,33833L,33834L,33835L,33836L,33837L,
9677833838L,33839L,33840L,33841L,33842L,33843L,33844L,33845L,33846L,33847L,
9677933848L,33849L,33850L,33851L,33852L,33853L,33854L,33855L,33856L,33857L,
9678033858L,33859L,33860L,33861L,33862L,33863L,33864L,33865L,33866L,33867L,
9678133868L,33869L,33870L,33871L,33872L,33873L,33874L,33875L,33876L,33877L,
9678233878L,33879L,33880L,33881L,33882L,33883L,33884L,33885L,33886L,33887L,
9678333888L,33889L,33890L,33891L,33892L,33893L,33894L,33895L,33896L,33897L,
9678433898L,33899L,33900L,33901L,33902L,33903L,33904L,33905L,33906L,33907L,
9678533908L,33909L,33910L,33911L,33912L,33913L,33914L,33915L,33916L,33917L,
9678633918L,33919L,33920L,33921L,33922L,33923L,33924L,33925L,33926L,33927L,
9678733928L,33929L,33930L,33931L,33932L,33933L,33934L,33935L,33936L,33937L,
9678833938L,33939L,33940L,33941L,33942L,33943L,33944L,33945L,33946L,33947L,
9678933948L,33949L,33950L,33951L,33952L,33953L,33954L,33955L,33956L,33957L,
9679033958L,33959L,33960L,33961L,33962L,33963L,33964L,33965L,33966L,33967L,
9679133968L,33969L,33970L,33971L,33972L,33973L,33974L,33975L,33976L,33977L,
9679233978L,33979L,33980L,33981L,33982L,33983L,33984L,33985L,33986L,33987L,
9679333988L,33989L,33990L,33991L,33992L,33993L,33994L,33995L,33996L,33997L,
9679433998L,33999L,34000L,34001L,34002L,34003L,34004L,34005L,34006L,34007L,
9679534008L,34009L,34010L,34011L,34012L,34013L,34014L,34015L,34016L,34017L,
9679634018L,34019L,34020L,34021L,34022L,34023L,34024L,34025L,34026L,34027L,
9679734028L,34029L,34030L,34031L,34032L,34033L,34034L,34035L,34036L,34037L,
9679834038L,34039L,34040L,34041L,34042L,34043L,34044L,34045L,34046L,34047L,
9679934048L,34049L,34050L,34051L,34052L,34053L,34054L,34055L,34056L,34057L,
9680034058L,34059L,34060L,34061L,34062L,34063L,34064L,34065L,34066L,34067L,
9680134068L,34069L,34070L,34071L,34072L,34073L,34074L,34075L,34076L,34077L,
9680234078L,34079L,34080L,34081L,34082L,34083L,34084L,34085L,34086L,34087L,
9680334088L,34089L,34090L,34091L,34092L,34093L,34094L,34095L,34096L,34097L,
9680434098L,34099L,34100L,34101L,34102L,34103L,34104L,34105L,34106L,34107L,
9680534108L,34109L,34110L,34111L,34112L,34113L,34114L,34115L,34116L,34117L,
9680634118L,34119L,34120L,34121L,34122L,34123L,34124L,34125L,34126L,34127L,
9680734128L,34129L,34130L,34131L,34132L,34133L,34134L,34135L,34136L,34137L,
9680834138L,34139L,34140L,34141L,34142L,34143L,34144L,34145L,34146L,34147L,
9680934148L,34149L,34150L,34151L,34152L,34153L,34154L,34155L,34156L,34157L,
9681034158L,34159L,34160L,34161L,34162L,34163L,34164L,34165L,34166L,34167L,
9681134168L,34169L,34170L,34171L,34172L,34173L,34174L,34175L,34176L,34177L,
9681234178L,34179L,34180L,34181L,34182L,34183L,34184L,34185L,34186L,34187L,
9681334188L,34189L,34190L,34191L,34192L,34193L,34194L,34195L,34196L,34197L,
9681434198L,34199L,34200L,34201L,34202L,34203L,34204L,34205L,34206L,34207L,
9681534208L,34209L,34210L,34211L,34212L,34213L,34214L,34215L,34216L,34217L,
9681634218L,34219L,34220L,34221L,34222L,34223L,34224L,34225L,34226L,34227L,
9681734228L,34229L,34230L,34231L,34232L,34233L,34234L,34235L,34236L,34237L,
9681834238L,34239L,34240L,34241L,34242L,34243L,34244L,34245L,34246L,34247L,
9681934248L,34249L,34250L,34251L,34252L,34253L,34254L,34255L,34256L,34257L,
9682034258L,34259L,34260L,34261L,34262L,34263L,34264L,34265L,34266L,34267L,
9682134268L,34269L,34270L,34271L,34272L,34273L,34274L,34275L,34276L,34277L,
9682234278L,34279L,34280L,34281L,34282L,34283L,34284L,34285L,34286L,34287L,
9682334288L,34289L,34290L,34291L,34292L,34293L,34294L,34295L,34296L,34297L,
9682434298L,34299L,34300L,34301L,34302L,34303L,34304L,34305L,34306L,34307L,
9682534308L,34309L,34310L,34311L,34312L,34313L,34314L,34315L,34316L,34317L,
9682634318L,34319L,34320L,34321L,34322L,34323L,34324L,34325L,34326L,34327L,
9682734328L,34329L,34330L,34331L,34332L,34333L,34334L,34335L,34336L,34337L,
9682834338L,34339L,34340L,34341L,34342L,34343L,34344L,34345L,34346L,34347L,
9682934348L,34349L,34350L,34351L,34352L,34353L,34354L,34355L,34356L,34357L,
9683034358L,34359L,34360L,34361L,34362L,34363L,34364L,34365L,34366L,34367L,
9683134368L,34369L,34370L,34371L,34372L,34373L,34374L,34375L,34376L,34377L,
9683234378L,34379L,34380L,34381L,34382L,34383L,34384L,34385L,34386L,34387L,
9683334388L,34389L,34390L,34391L,34392L,34393L,34394L,34395L,34396L,34397L,
9683434398L,34399L,34400L,34401L,34402L,34403L,34404L,34405L,34406L,34407L,
9683534408L,34409L,34410L,34411L,34412L,34413L,34414L,34415L,34416L,34417L,
9683634418L,34419L,34420L,34421L,34422L,34423L,34424L,34425L,34426L,34427L,
9683734428L,34429L,34430L,34431L,34432L,34433L,34434L,34435L,34436L,34437L,
9683834438L,34439L,34440L,34441L,34442L,34443L,34444L,34445L,34446L,34447L,
9683934448L,34449L,34450L,34451L,34452L,34453L,34454L,34455L,34456L,34457L,
9684034458L,34459L,34460L,34461L,34462L,34463L,34464L,34465L,34466L,34467L,
9684134468L,34469L,34470L,34471L,34472L,34473L,34474L,34475L,34476L,34477L,
9684234478L,34479L,34480L,34481L,34482L,34483L,34484L,34485L,34486L,34487L,
9684334488L,34489L,34490L,34491L,34492L,34493L,34494L,34495L,34496L,34497L,
9684434498L,34499L,34500L,34501L,34502L,34503L,34504L,34505L,34506L,34507L,
9684534508L,34509L,34510L,34511L,34512L,34513L,34514L,34515L,34516L,34517L,
9684634518L,34519L,34520L,34521L,34522L,34523L,34524L,34525L,34526L,34527L,
9684734528L,34529L,34530L,34531L,34532L,34533L,34534L,34535L,34536L,34537L,
9684834538L,34539L,34540L,34541L,34542L,34543L,34544L,34545L,34546L,34547L,
9684934548L,34549L,34550L,34551L,34552L,34553L,34554L,34555L,34556L,34557L,
9685034558L,34559L,34560L,34561L,34562L,34563L,34564L,34565L,34566L,34567L,
9685134568L,34569L,34570L,34571L,34572L,34573L,34574L,34575L,34576L,34577L,
9685234578L,34579L,34580L,34581L,34582L,34583L,34584L,34585L,34586L,34587L,
9685334588L,34589L,34590L,34591L,34592L,34593L,34594L,34595L,34596L,34597L,
9685434598L,34599L,34600L,34601L,34602L,34603L,34604L,34605L,34606L,34607L,
9685534608L,34609L,34610L,34611L,34612L,34613L,34614L,34615L,34616L,34617L,
9685634618L,34619L,34620L,34621L,34622L,34623L,34624L,34625L,34626L,34627L,
9685734628L,34629L,34630L,34631L,34632L,34633L,34634L,34635L,34636L,34637L,
9685834638L,34639L,34640L,34641L,34642L,34643L,34644L,34645L,34646L,34647L,
9685934648L,34649L,34650L,34651L,34652L,34653L,34654L,34655L,34656L,34657L,
9686034658L,34659L,34660L,34661L,34662L,34663L,34664L,34665L,34666L,34667L,
9686134668L,34669L,34670L,34671L,34672L,34673L,34674L,34675L,34676L,34677L,
9686234678L,34679L,34680L,34681L,34682L,34683L,34684L,34685L,34686L,34687L,
9686334688L,34689L,34690L,34691L,34692L,34693L,34694L,34695L,34696L,34697L,
9686434698L,34699L,34700L,34701L,34702L,34703L,34704L,34705L,34706L,34707L,
9686534708L,34709L,34710L,34711L,34712L,34713L,34714L,34715L,34716L,34717L,
9686634718L,34719L,34720L,34721L,34722L,34723L,34724L,34725L,34726L,34727L,
9686734728L,34729L,34730L,34731L,34732L,34733L,34734L,34735L,34736L,34737L,
9686834738L,34739L,34740L,34741L,34742L,34743L,34744L,34745L,34746L,34747L,
9686934748L,34749L,34750L,34751L,34752L,34753L,34754L,34755L,34756L,34757L,
9687034758L,34759L,34760L,34761L,34762L,34763L,34764L,34765L,34766L,34767L,
9687134768L,34769L,34770L,34771L,34772L,34773L,34774L,34775L,34776L,34777L,
9687234778L,34779L,34780L,34781L,34782L,34783L,34784L,34785L,34786L,34787L,
9687334788L,34789L,34790L,34791L,34792L,34793L,34794L,34795L,34796L,34797L,
9687434798L,34799L,34800L,34801L,34802L,34803L,34804L,34805L,34806L,34807L,
9687534808L,34809L,34810L,34811L,34812L,34813L,34814L,34815L,34816L,34817L,
9687634818L,34819L,34820L,34821L,34822L,34823L,34824L,34825L,34826L,34827L,
9687734828L,34829L,34830L,34831L,34832L,34833L,34834L,34835L,34836L,34837L,
9687834838L,34839L,34840L,34841L,34842L,34843L,34844L,34845L,34846L,34847L,
9687934848L,34849L,34850L,34851L,34852L,34853L,34854L,34855L,34856L,34857L,
9688034858L,34859L,34860L,34861L,34862L,34863L,34864L,34865L,34866L,34867L,
9688134868L,34869L,34870L,34871L,34872L,34873L,34874L,34875L,34876L,34877L,
9688234878L,34879L,34880L,34881L,34882L,34883L,34884L,34885L,34886L,34887L,
9688334888L,34889L,34890L,34891L,34892L,34893L,34894L,34895L,34896L,34897L,
9688434898L,34899L,34900L,34901L,34902L,34903L,34904L,34905L,34906L,34907L,
9688534908L,34909L,34910L,34911L,34912L,34913L,34914L,34915L,34916L,34917L,
9688634918L,34919L,34920L,34921L,34922L,34923L,34924L,34925L,34926L,34927L,
9688734928L,34929L,34930L,34931L,34932L,34933L,34934L,34935L,34936L,34937L,
9688834938L,34939L,34940L,34941L,34942L,34943L,34944L,34945L,34946L,34947L,
9688934948L,34949L,34950L,34951L,34952L,34953L,34954L,34955L,34956L,34957L,
9689034958L,34959L,34960L,34961L,34962L,34963L,34964L,34965L,34966L,34967L,
9689134968L,34969L,34970L,34971L,34972L,34973L,34974L,34975L,34976L,34977L,
9689234978L,34979L,34980L,34981L,34982L,34983L,34984L,34985L,34986L,34987L,
9689334988L,34989L,34990L,34991L,34992L,34993L,34994L,34995L,34996L,34997L,
9689434998L,34999L,35000L,35001L,35002L,35003L,35004L,35005L,35006L,35007L,
9689535008L,35009L,35010L,35011L,35012L,35013L,35014L,35015L,35016L,35017L,
9689635018L,35019L,35020L,35021L,35022L,35023L,35024L,35025L,35026L,35027L,
9689735028L,35029L,35030L,35031L,35032L,35033L,35034L,35035L,35036L,35037L,
9689835038L,35039L,35040L,35041L,35042L,35043L,35044L,35045L,35046L,35047L,
9689935048L,35049L,35050L,35051L,35052L,35053L,35054L,35055L,35056L,35057L,
9690035058L,35059L,35060L,35061L,35062L,35063L,35064L,35065L,35066L,35067L,
9690135068L,35069L,35070L,35071L,35072L,35073L,35074L,35075L,35076L,35077L,
9690235078L,35079L,35080L,35081L,35082L,35083L,35084L,35085L,35086L,35087L,
9690335088L,35089L,35090L,35091L,35092L,35093L,35094L,35095L,35096L,35097L,
9690435098L,35099L,35100L,35101L,35102L,35103L,35104L,35105L,35106L,35107L,
9690535108L,35109L,35110L,35111L,35112L,35113L,35114L,35115L,35116L,35117L,
9690635118L,35119L,35120L,35121L,35122L,35123L,35124L,35125L,35126L,35127L,
9690735128L,35129L,35130L,35131L,35132L,35133L,35134L,35135L,35136L,35137L,
9690835138L,35139L,35140L,35141L,35142L,35143L,35144L,35145L,35146L,35147L,
9690935148L,35149L,35150L,35151L,35152L,35153L,35154L,35155L,35156L,35157L,
9691035158L,35159L,35160L,35161L,35162L,35163L,35164L,35165L,35166L,35167L,
9691135168L,35169L,35170L,35171L,35172L,35173L,35174L,35175L,35176L,35177L,
9691235178L,35179L,35180L,35181L,35182L,35183L,35184L,35185L,35186L,35187L,
9691335188L,35189L,35190L,35191L,35192L,35193L,35194L,35195L,35196L,35197L,
9691435198L,35199L,35200L,35201L,35202L,35203L,35204L,35205L,35206L,35207L,
9691535208L,35209L,35210L,35211L,35212L,35213L,35214L,35215L,35216L,35217L,
9691635218L,35219L,35220L,35221L,35222L,35223L,35224L,35225L,35226L,35227L,
9691735228L,35229L,35230L,35231L,35232L,35233L,35234L,35235L,35236L,35237L,
9691835238L,35239L,35240L,35241L,35242L,35243L,35244L,35245L,35246L,35247L,
9691935248L,35249L,35250L,35251L,35252L,35253L,35254L,35255L,35256L,35257L,
9692035258L,35259L,35260L,35261L,35262L,35263L,35264L,35265L,35266L,35267L,
9692135268L,35269L,35270L,35271L,35272L,35273L,35274L,35275L,35276L,35277L,
9692235278L,35279L,35280L,35281L,35282L,35283L,35284L,35285L,35286L,35287L,
9692335288L,35289L,35290L,35291L,35292L,35293L,35294L,35295L,35296L,35297L,
9692435298L,35299L,35300L,35301L,35302L,35303L,35304L,35305L,35306L,35307L,
9692535308L,35309L,35310L,35311L,35312L,35313L,35314L,35315L,35316L,35317L,
9692635318L,35319L,35320L,35321L,35322L,35323L,35324L,35325L,35326L,35327L,
9692735328L,35329L,35330L,35331L,35332L,35333L,35334L,35335L,35336L,35337L,
9692835338L,35339L,35340L,35341L,35342L,35343L,35344L,35345L,35346L,35347L,
9692935348L,35349L,35350L,35351L,35352L,35353L,35354L,35355L,35356L,35357L,
9693035358L,35359L,35360L,35361L,35362L,35363L,35364L,35365L,35366L,35367L,
9693135368L,35369L,35370L,35371L,35372L,35373L,35374L,35375L,35376L,35377L,
9693235378L,35379L,35380L,35381L,35382L,35383L,35384L,35385L,35386L,35387L,
9693335388L,35389L,35390L,35391L,35392L,35393L,35394L,35395L,35396L,35397L,
9693435398L,35399L,35400L,35401L,35402L,35403L,35404L,35405L,35406L,35407L,
9693535408L,35409L,35410L,35411L,35412L,35413L,35414L,35415L,35416L,35417L,
9693635418L,35419L,35420L,35421L,35422L,35423L,35424L,35425L,35426L,35427L,
9693735428L,35429L,35430L,35431L,35432L,35433L,35434L,35435L,35436L,35437L,
9693835438L,35439L,35440L,35441L,35442L,35443L,35444L,35445L,35446L,35447L,
9693935448L,35449L,35450L,35451L,35452L,35453L,35454L,35455L,35456L,35457L,
9694035458L,35459L,35460L,35461L,35462L,35463L,35464L,35465L,35466L,35467L,
9694135468L,35469L,35470L,35471L,35472L,35473L,35474L,35475L,35476L,35477L,
9694235478L,35479L,35480L,35481L,35482L,35483L,35484L,35485L,35486L,35487L,
9694335488L,35489L,35490L,35491L,35492L,35493L,35494L,35495L,35496L,35497L,
9694435498L,35499L,35500L,35501L,35502L,35503L,35504L,35505L,35506L,35507L,
9694535508L,35509L,35510L,35511L,35512L,35513L,35514L,35515L,35516L,35517L,
9694635518L,35519L,35520L,35521L,35522L,35523L,35524L,35525L,35526L,35527L,
9694735528L,35529L,35530L,35531L,35532L,35533L,35534L,35535L,35536L,35537L,
9694835538L,35539L,35540L,35541L,35542L,35543L,35544L,35545L,35546L,35547L,
9694935548L,35549L,35550L,35551L,35552L,35553L,35554L,35555L,35556L,35557L,
9695035558L,35559L,35560L,35561L,35562L,35563L,35564L,35565L,35566L,35567L,
9695135568L,35569L,35570L,35571L,35572L,35573L,35574L,35575L,35576L,35577L,
9695235578L,35579L,35580L,35581L,35582L,35583L,35584L,35585L,35586L,35587L,
9695335588L,35589L,35590L,35591L,35592L,35593L,35594L,35595L,35596L,35597L,
9695435598L,35599L,35600L,35601L,35602L,35603L,35604L,35605L,35606L,35607L,
9695535608L,35609L,35610L,35611L,35612L,35613L,35614L,35615L,35616L,35617L,
9695635618L,35619L,35620L,35621L,35622L,35623L,35624L,35625L,35626L,35627L,
9695735628L,35629L,35630L,35631L,35632L,35633L,35634L,35635L,35636L,35637L,
9695835638L,35639L,35640L,35641L,35642L,35643L,35644L,35645L,35646L,35647L,
9695935648L,35649L,35650L,35651L,35652L,35653L,35654L,35655L,35656L,35657L,
9696035658L,35659L,35660L,35661L,35662L,35663L,35664L,35665L,35666L,35667L,
9696135668L,35669L,35670L,35671L,35672L,35673L,35674L,35675L,35676L,35677L,
9696235678L,35679L,35680L,35681L,35682L,35683L,35684L,35685L,35686L,35687L,
9696335688L,35689L,35690L,35691L,35692L,35693L,35694L,35695L,35696L,35697L,
9696435698L,35699L,35700L,35701L,35702L,35703L,35704L,35705L,35706L,35707L,
9696535708L,35709L,35710L,35711L,35712L,35713L,35714L,35715L,35716L,35717L,
9696635718L,35719L,35720L,35721L,35722L,35723L,35724L,35725L,35726L,35727L,
9696735728L,35729L,35730L,35731L,35732L,35733L,35734L,35735L,35736L,35737L,
9696835738L,35739L,35740L,35741L,35742L,35743L,35744L,35745L,35746L,35747L,
9696935748L,35749L,35750L,35751L,35752L,35753L,35754L,35755L,35756L,35757L,
9697035758L,35759L,35760L,35761L,35762L,35763L,35764L,35765L,35766L,35767L,
9697135768L,35769L,35770L,35771L,35772L,35773L,35774L,35775L,35776L,35777L,
9697235778L,35779L,35780L,35781L,35782L,35783L,35784L,35785L,35786L,35787L,
9697335788L,35789L,35790L,35791L,35792L,35793L,35794L,35795L,35796L,35797L,
9697435798L,35799L,35800L,35801L,35802L,35803L,35804L,35805L,35806L,35807L,
9697535808L,35809L,35810L,35811L,35812L,35813L,35814L,35815L,35816L,35817L,
9697635818L,35819L,35820L,35821L,35822L,35823L,35824L,35825L,35826L,35827L,
9697735828L,35829L,35830L,35831L,35832L,35833L,35834L,35835L,35836L,35837L,
9697835838L,35839L,35840L,35841L,35842L,35843L,35844L,35845L,35846L,35847L,
9697935848L,35849L,35850L,35851L,35852L,35853L,35854L,35855L,35856L,35857L,
9698035858L,35859L,35860L,35861L,35862L,35863L,35864L,35865L,35866L,35867L,
9698135868L,35869L,35870L,35871L,35872L,35873L,35874L,35875L,35876L,35877L,
9698235878L,35879L,35880L,35881L,35882L,35883L,35884L,35885L,35886L,35887L,
9698335888L,35889L,35890L,35891L,35892L,35893L,35894L,35895L,35896L,35897L,
9698435898L,35899L,35900L,35901L,35902L,35903L,35904L,35905L,35906L,35907L,
9698535908L,35909L,35910L,35911L,35912L,35913L,35914L,35915L,35916L,35917L,
9698635918L,35919L,35920L,35921L,35922L,35923L,35924L,35925L,35926L,35927L,
9698735928L,35929L,35930L,35931L,35932L,35933L,35934L,35935L,35936L,35937L,
9698835938L,35939L,35940L,35941L,35942L,35943L,35944L,35945L,35946L,35947L,
9698935948L,35949L,35950L,35951L,35952L,35953L,35954L,35955L,35956L,35957L,
9699035958L,35959L,35960L,35961L,35962L,35963L,35964L,35965L,35966L,35967L,
9699135968L,35969L,35970L,35971L,35972L,35973L,35974L,35975L,35976L,35977L,
9699235978L,35979L,35980L,35981L,35982L,35983L,35984L,35985L,35986L,35987L,
9699335988L,35989L,35990L,35991L,35992L,35993L,35994L,35995L,35996L,35997L,
9699435998L,35999L,36000L,36001L,36002L,36003L,36004L,36005L,36006L,36007L,
9699536008L,36009L,36010L,36011L,36012L,36013L,36014L,36015L,36016L,36017L,
9699636018L,36019L,36020L,36021L,36022L,36023L,36024L,36025L,36026L,36027L,
9699736028L,36029L,36030L,36031L,36032L,36033L,36034L,36035L,36036L,36037L,
9699836038L,36039L,36040L,36041L,36042L,36043L,36044L,36045L,36046L,36047L,
9699936048L,36049L,36050L,36051L,36052L,36053L,36054L,36055L,36056L,36057L,
9700036058L,36059L,36060L,36061L,36062L,36063L,36064L,36065L,36066L,36067L,
9700136068L,36069L,36070L,36071L,36072L,36073L,36074L,36075L,36076L,36077L,
9700236078L,36079L,36080L,36081L,36082L,36083L,36084L,36085L,36086L,36087L,
9700336088L,36089L,36090L,36091L,36092L,36093L,36094L,36095L,36096L,36097L,
9700436098L,36099L,36100L,36101L,36102L,36103L,36104L,36105L,36106L,36107L,
9700536108L,36109L,36110L,36111L,36112L,36113L,36114L,36115L,36116L,36117L,
9700636118L,36119L,36120L,36121L,36122L,36123L,36124L,36125L,36126L,36127L,
9700736128L,36129L,36130L,36131L,36132L,36133L,36134L,36135L,36136L,36137L,
9700836138L,36139L,36140L,36141L,36142L,36143L,36144L,36145L,36146L,36147L,
9700936148L,36149L,36150L,36151L,36152L,36153L,36154L,36155L,36156L,36157L,
9701036158L,36159L,36160L,36161L,36162L,36163L,36164L,36165L,36166L,36167L,
9701136168L,36169L,36170L,36171L,36172L,36173L,36174L,36175L,36176L,36177L,
9701236178L,36179L,36180L,36181L,36182L,36183L,36184L,36185L,36186L,36187L,
9701336188L,36189L,36190L,36191L,36192L,36193L,36194L,36195L,36196L,36197L,
9701436198L,36199L,36200L,36201L,36202L,36203L,36204L,36205L,36206L,36207L,
9701536208L,36209L,36210L,36211L,36212L,36213L,36214L,36215L,36216L,36217L,
9701636218L,36219L,36220L,36221L,36222L,36223L,36224L,36225L,36226L,36227L,
9701736228L,36229L,36230L,36231L,36232L,36233L,36234L,36235L,36236L,36237L,
9701836238L,36239L,36240L,36241L,36242L,36243L,36244L,36245L,36246L,36247L,
9701936248L,36249L,36250L,36251L,36252L,36253L,36254L,36255L,36256L,36257L,
9702036258L,36259L,36260L,36261L,36262L,36263L,36264L,36265L,36266L,36267L,
9702136268L,36269L,36270L,36271L,36272L,36273L,36274L,36275L,36276L,36277L,
9702236278L,36279L,36280L,36281L,36282L,36283L,36284L,36285L,36286L,36287L,
9702336288L,36289L,36290L,36291L,36292L,36293L,36294L,36295L,36296L,36297L,
9702436298L,36299L,36300L,36301L,36302L,36303L,36304L,36305L,36306L,36307L,
9702536308L,36309L,36310L,36311L,36312L,36313L,36314L,36315L,36316L,36317L,
9702636318L,36319L,36320L,36321L,36322L,36323L,36324L,36325L,36326L,36327L,
9702736328L,36329L,36330L,36331L,36332L,36333L,36334L,36335L,36336L,36337L,
9702836338L,36339L,36340L,36341L,36342L,36343L,36344L,36345L,36346L,36347L,
9702936348L,36349L,36350L,36351L,36352L,36353L,36354L,36355L,36356L,36357L,
9703036358L,36359L,36360L,36361L,36362L,36363L,36364L,36365L,36366L,36367L,
9703136368L,36369L,36370L,36371L,36372L,36373L,36374L,36375L,36376L,36377L,
9703236378L,36379L,36380L,36381L,36382L,36383L,36384L,36385L,36386L,36387L,
9703336388L,36389L,36390L,36391L,36392L,36393L,36394L,36395L,36396L,36397L,
9703436398L,36399L,36400L,36401L,36402L,36403L,36404L,36405L,36406L,36407L,
9703536408L,36409L,36410L,36411L,36412L,36413L,36414L,36415L,36416L,36417L,
9703636418L,36419L,36420L,36421L,36422L,36423L,36424L,36425L,36426L,36427L,
9703736428L,36429L,36430L,36431L,36432L,36433L,36434L,36435L,36436L,36437L,
9703836438L,36439L,36440L,36441L,36442L,36443L,36444L,36445L,36446L,36447L,
9703936448L,36449L,36450L,36451L,36452L,36453L,36454L,36455L,36456L,36457L,
9704036458L,36459L,36460L,36461L,36462L,36463L,36464L,36465L,36466L,36467L,
9704136468L,36469L,36470L,36471L,36472L,36473L,36474L,36475L,36476L,36477L,
9704236478L,36479L,36480L,36481L,36482L,36483L,36484L,36485L,36486L,36487L,
9704336488L,36489L,36490L,36491L,36492L,36493L,36494L,36495L,36496L,36497L,
9704436498L,36499L,36500L,36501L,36502L,36503L,36504L,36505L,36506L,36507L,
9704536508L,36509L,36510L,36511L,36512L,36513L,36514L,36515L,36516L,36517L,
9704636518L,36519L,36520L,36521L,36522L,36523L,36524L,36525L,36526L,36527L,
9704736528L,36529L,36530L,36531L,36532L,36533L,36534L,36535L,36536L,36537L,
9704836538L,36539L,36540L,36541L,36542L,36543L,36544L,36545L,36546L,36547L,
9704936548L,36549L,36550L,36551L,36552L,36553L,36554L,36555L,36556L,36557L,
9705036558L,36559L,36560L,36561L,36562L,36563L,36564L,36565L,36566L,36567L,
9705136568L,36569L,36570L,36571L,36572L,36573L,36574L,36575L,36576L,36577L,
9705236578L,36579L,36580L,36581L,36582L,36583L,36584L,36585L,36586L,36587L,
9705336588L,36589L,36590L,36591L,36592L,36593L,36594L,36595L,36596L,36597L,
9705436598L,36599L,36600L,36601L,36602L,36603L,36604L,36605L,36606L,36607L,
9705536608L,36609L,36610L,36611L,36612L,36613L,36614L,36615L,36616L,36617L,
9705636618L,36619L,36620L,36621L,36622L,36623L,36624L,36625L,36626L,36627L,
9705736628L,36629L,36630L,36631L,36632L,36633L,36634L,36635L,36636L,36637L,
9705836638L,36639L,36640L,36641L,36642L,36643L,36644L,36645L,36646L,36647L,
9705936648L,36649L,36650L,36651L,36652L,36653L,36654L,36655L,36656L,36657L,
9706036658L,36659L,36660L,36661L,36662L,36663L,36664L,36665L,36666L,36667L,
9706136668L,36669L,36670L,36671L,36672L,36673L,36674L,36675L,36676L,36677L,
9706236678L,36679L,36680L,36681L,36682L,36683L,36684L,36685L,36686L,36687L,
9706336688L,36689L,36690L,36691L,36692L,36693L,36694L,36695L,36696L,36697L,
9706436698L,36699L,36700L,36701L,36702L,36703L,36704L,36705L,36706L,36707L,
9706536708L,36709L,36710L,36711L,36712L,36713L,36714L,36715L,36716L,36717L,
9706636718L,36719L,36720L,36721L,36722L,36723L,36724L,36725L,36726L,36727L,
9706736728L,36729L,36730L,36731L,36732L,36733L,36734L,36735L,36736L,36737L,
9706836738L,36739L,36740L,36741L,36742L,36743L,36744L,36745L,36746L,36747L,
9706936748L,36749L,36750L,36751L,36752L,36753L,36754L,36755L,36756L,36757L,
9707036758L,36759L,36760L,36761L,36762L,36763L,36764L,36765L,36766L,36767L,
9707136768L,36769L,36770L,36771L,36772L,36773L,36774L,36775L,36776L,36777L,
9707236778L,36779L,36780L,36781L,36782L,36783L,36784L,36785L,36786L,36787L,
9707336788L,36789L,36790L,36791L,36792L,36793L,36794L,36795L,36796L,36797L,
9707436798L,36799L,36800L,36801L,36802L,36803L,36804L,36805L,36806L,36807L,
9707536808L,36809L,36810L,36811L,36812L,36813L,36814L,36815L,36816L,36817L,
9707636818L,36819L,36820L,36821L,36822L,36823L,36824L,36825L,36826L,36827L,
9707736828L,36829L,36830L,36831L,36832L,36833L,36834L,36835L,36836L,36837L,
9707836838L,36839L,36840L,36841L,36842L,36843L,36844L,36845L,36846L,36847L,
9707936848L,36849L,36850L,36851L,36852L,36853L,36854L,36855L,36856L,36857L,
9708036858L,36859L,36860L,36861L,36862L,36863L,36864L,36865L,36866L,36867L,
9708136868L,36869L,36870L,36871L,36872L,36873L,36874L,36875L,36876L,36877L,
9708236878L,36879L,36880L,36881L,36882L,36883L,36884L,36885L,36886L,36887L,
9708336888L,36889L,36890L,36891L,36892L,36893L,36894L,36895L,36896L,36897L,
9708436898L,36899L,36900L,36901L,36902L,36903L,36904L,36905L,36906L,36907L,
9708536908L,36909L,36910L,36911L,36912L,36913L,36914L,36915L,36916L,36917L,
9708636918L,36919L,36920L,36921L,36922L,36923L,36924L,36925L,36926L,36927L,
9708736928L,36929L,36930L,36931L,36932L,36933L,36934L,36935L,36936L,36937L,
9708836938L,36939L,36940L,36941L,36942L,36943L,36944L,36945L,36946L,36947L,
9708936948L,36949L,36950L,36951L,36952L,36953L,36954L,36955L,36956L,36957L,
9709036958L,36959L,36960L,36961L,36962L,36963L,36964L,36965L,36966L,36967L,
9709136968L,36969L,36970L,36971L,36972L,36973L,36974L,36975L,36976L,36977L,
9709236978L,36979L,36980L,36981L,36982L,36983L,36984L,36985L,36986L,36987L,
9709336988L,36989L,36990L,36991L,36992L,36993L,36994L,36995L,36996L,36997L,
9709436998L,36999L,37000L,37001L,37002L,37003L,37004L,37005L,37006L,37007L,
9709537008L,37009L,37010L,37011L,37012L,37013L,37014L,37015L,37016L,37017L,
9709637018L,37019L,37020L,37021L,37022L,37023L,37024L,37025L,37026L,37027L,
9709737028L,37029L,37030L,37031L,37032L,37033L,37034L,37035L,37036L,37037L,
9709837038L,37039L,37040L,37041L,37042L,37043L,37044L,37045L,37046L,37047L,
9709937048L,37049L,37050L,37051L,37052L,37053L,37054L,37055L,37056L,37057L,
9710037058L,37059L,37060L,37061L,37062L,37063L,37064L,37065L,37066L,37067L,
9710137068L,37069L,37070L,37071L,37072L,37073L,37074L,37075L,37076L,37077L,
9710237078L,37079L,37080L,37081L,37082L,37083L,37084L,37085L,37086L,37087L,
9710337088L,37089L,37090L,37091L,37092L,37093L,37094L,37095L,37096L,37097L,
9710437098L,37099L,37100L,37101L,37102L,37103L,37104L,37105L,37106L,37107L,
9710537108L,37109L,37110L,37111L,37112L,37113L,37114L,37115L,37116L,37117L,
9710637118L,37119L,37120L,37121L,37122L,37123L,37124L,37125L,37126L,37127L,
9710737128L,37129L,37130L,37131L,37132L,37133L,37134L,37135L,37136L,37137L,
9710837138L,37139L,37140L,37141L,37142L,37143L,37144L,37145L,37146L,37147L,
9710937148L,37149L,37150L,37151L,37152L,37153L,37154L,37155L,37156L,37157L,
9711037158L,37159L,37160L,37161L,37162L,37163L,37164L,37165L,37166L,37167L,
9711137168L,37169L,37170L,37171L,37172L,37173L,37174L,37175L,37176L,37177L,
9711237178L,37179L,37180L,37181L,37182L,37183L,37184L,37185L,37186L,37187L,
9711337188L,37189L,37190L,37191L,37192L,37193L,37194L,37195L,37196L,37197L,
9711437198L,37199L,37200L,37201L,37202L,37203L,37204L,37205L,37206L,37207L,
9711537208L,37209L,37210L,37211L,37212L,37213L,37214L,37215L,37216L,37217L,
9711637218L,37219L,37220L,37221L,37222L,37223L,37224L,37225L,37226L,37227L,
9711737228L,37229L,37230L,37231L,37232L,37233L,37234L,37235L,37236L,37237L,
9711837238L,37239L,37240L,37241L,37242L,37243L,37244L,37245L,37246L,37247L,
9711937248L,37249L,37250L,37251L,37252L,37253L,37254L,37255L,37256L,37257L,
9712037258L,37259L,37260L,37261L,37262L,37263L,37264L,37265L,37266L,37267L,
9712137268L,37269L,37270L,37271L,37272L,37273L,37274L,37275L,37276L,37277L,
9712237278L,37279L,37280L,37281L,37282L,37283L,37284L,37285L,37286L,37287L,
9712337288L,37289L,37290L,37291L,37292L,37293L,37294L,37295L,37296L,37297L,
9712437298L,37299L,37300L,37301L,37302L,37303L,37304L,37305L,37306L,37307L,
9712537308L,37309L,37310L,37311L,37312L,37313L,37314L,37315L,37316L,37317L,
9712637318L,37319L,37320L,37321L,37322L,37323L,37324L,37325L,37326L,37327L,
9712737328L,37329L,37330L,37331L,37332L,37333L,37334L,37335L,37336L,37337L,
9712837338L,37339L,37340L,37341L,37342L,37343L,37344L,37345L,37346L,37347L,
9712937348L,37349L,37350L,37351L,37352L,37353L,37354L,37355L,37356L,37357L,
9713037358L,37359L,37360L,37361L,37362L,37363L,37364L,37365L,37366L,37367L,
9713137368L,37369L,37370L,37371L,37372L,37373L,37374L,37375L,37376L,37377L,
9713237378L,37379L,37380L,37381L,37382L,37383L,37384L,37385L,37386L,37387L,
9713337388L,37389L,37390L,37391L,37392L,37393L,37394L,37395L,37396L,37397L,
9713437398L,37399L,37400L,37401L,37402L,37403L,37404L,37405L,37406L,37407L,
9713537408L,37409L,37410L,37411L,37412L,37413L,37414L,37415L,37416L,37417L,
9713637418L,37419L,37420L,37421L,37422L,37423L,37424L,37425L,37426L,37427L,
9713737428L,37429L,37430L,37431L,37432L,37433L,37434L,37435L,37436L,37437L,
9713837438L,37439L,37440L,37441L,37442L,37443L,37444L,37445L,37446L,37447L,
9713937448L,37449L,37450L,37451L,37452L,37453L,37454L,37455L,37456L,37457L,
9714037458L,37459L,37460L,37461L,37462L,37463L,37464L,37465L,37466L,37467L,
9714137468L,37469L,37470L,37471L,37472L,37473L,37474L,37475L,37476L,37477L,
9714237478L,37479L,37480L,37481L,37482L,37483L,37484L,37485L,37486L,37487L,
9714337488L,37489L,37490L,37491L,37492L,37493L,37494L,37495L,37496L,37497L,
9714437498L,37499L,37500L,37501L,37502L,37503L,37504L,37505L,37506L,37507L,
9714537508L,37509L,37510L,37511L,37512L,37513L,37514L,37515L,37516L,37517L,
9714637518L,37519L,37520L,37521L,37522L,37523L,37524L,37525L,37526L,37527L,
9714737528L,37529L,37530L,37531L,37532L,37533L,37534L,37535L,37536L,37537L,
9714837538L,37539L,37540L,37541L,37542L,37543L,37544L,37545L,37546L,37547L,
9714937548L,37549L,37550L,37551L,37552L,37553L,37554L,37555L,37556L,37557L,
9715037558L,37559L,37560L,37561L,37562L,37563L,37564L,37565L,37566L,37567L,
9715137568L,37569L,37570L,37571L,37572L,37573L,37574L,37575L,37576L,37577L,
9715237578L,37579L,37580L,37581L,37582L,37583L,37584L,37585L,37586L,37587L,
9715337588L,37589L,37590L,37591L,37592L,37593L,37594L,37595L,37596L,37597L,
9715437598L,37599L,37600L,37601L,37602L,37603L,37604L,37605L,37606L,37607L,
9715537608L,37609L,37610L,37611L,37612L,37613L,37614L,37615L,37616L,37617L,
9715637618L,37619L,37620L,37621L,37622L,37623L,37624L,37625L,37626L,37627L,
9715737628L,37629L,37630L,37631L,37632L,37633L,37634L,37635L,37636L,37637L,
9715837638L,37639L,37640L,37641L,37642L,37643L,37644L,37645L,37646L,37647L,
9715937648L,37649L,37650L,37651L,37652L,37653L,37654L,37655L,37656L,37657L,
9716037658L,37659L,37660L,37661L,37662L,37663L,37664L,37665L,37666L,37667L,
9716137668L,37669L,37670L,37671L,37672L,37673L,37674L,37675L,37676L,37677L,
9716237678L,37679L,37680L,37681L,37682L,37683L,37684L,37685L,37686L,37687L,
9716337688L,37689L,37690L,37691L,37692L,37693L,37694L,37695L,37696L,37697L,
9716437698L,37699L,37700L,37701L,37702L,37703L,37704L,37705L,37706L,37707L,
9716537708L,37709L,37710L,37711L,37712L,37713L,37714L,37715L,37716L,37717L,
9716637718L,37719L,37720L,37721L,37722L,37723L,37724L,37725L,37726L,37727L,
9716737728L,37729L,37730L,37731L,37732L,37733L,37734L,37735L,37736L,37737L,
9716837738L,37739L,37740L,37741L,37742L,37743L,37744L,37745L,37746L,37747L,
9716937748L,37749L,37750L,37751L,37752L,37753L,37754L,37755L,37756L,37757L,
9717037758L,37759L,37760L,37761L,37762L,37763L,37764L,37765L,37766L,37767L,
9717137768L,37769L,37770L,37771L,37772L,37773L,37774L,37775L,37776L,37777L,
9717237778L,37779L,37780L,37781L,37782L,37783L,37784L,37785L,37786L,37787L,
9717337788L,37789L,37790L,37791L,37792L,37793L,37794L,37795L,37796L,37797L,
9717437798L,37799L,37800L,37801L,37802L,37803L,37804L,37805L,37806L,37807L,
9717537808L,37809L,37810L,37811L,37812L,37813L,37814L,37815L,37816L,37817L,
9717637818L,37819L,37820L,37821L,37822L,37823L,37824L,37825L,37826L,37827L,
9717737828L,37829L,37830L,37831L,37832L,37833L,37834L,37835L,37836L,37837L,
9717837838L,37839L,37840L,37841L,37842L,37843L,37844L,37845L,37846L,37847L,
9717937848L,37849L,37850L,37851L,37852L,37853L,37854L,37855L,37856L,37857L,
9718037858L,37859L,37860L,37861L,37862L,37863L,37864L,37865L,37866L,37867L,
9718137868L,37869L,37870L,37871L,37872L,37873L,37874L,37875L,37876L,37877L,
9718237878L,37879L,37880L,37881L,37882L,37883L,37884L,37885L,37886L,37887L,
9718337888L,37889L,37890L,37891L,37892L,37893L,37894L,37895L,37896L,37897L,
9718437898L,37899L,37900L,37901L,37902L,37903L,37904L,37905L,37906L,37907L,
9718537908L,37909L,37910L,37911L,37912L,37913L,37914L,37915L,37916L,37917L,
9718637918L,37919L,37920L,37921L,37922L,37923L,37924L,37925L,37926L,37927L,
9718737928L,37929L,37930L,37931L,37932L,37933L,37934L,37935L,37936L,37937L,
9718837938L,37939L,37940L,37941L,37942L,37943L,37944L,37945L,37946L,37947L,
9718937948L,37949L,37950L,37951L,37952L,37953L,37954L,37955L,37956L,37957L,
9719037958L,37959L,37960L,37961L,37962L,37963L,37964L,37965L,37966L,37967L,
9719137968L,37969L,37970L,37971L,37972L,37973L,37974L,37975L,37976L,37977L,
9719237978L,37979L,37980L,37981L,37982L,37983L,37984L,37985L,37986L,37987L,
9719337988L,37989L,37990L,37991L,37992L,37993L,37994L,37995L,37996L,37997L,
9719437998L,37999L,38000L,38001L,38002L,38003L,38004L,38005L,38006L,38007L,
9719538008L,38009L,38010L,38011L,38012L,38013L,38014L,38015L,38016L,38017L,
9719638018L,38019L,38020L,38021L,38022L,38023L,38024L,38025L,38026L,38027L,
9719738028L,38029L,38030L,38031L,38032L,38033L,38034L,38035L,38036L,38037L,
9719838038L,38039L,38040L,38041L,38042L,38043L,38044L,38045L,38046L,38047L,
9719938048L,38049L,38050L,38051L,38052L,38053L,38054L,38055L,38056L,38057L,
9720038058L,38059L,38060L,38061L,38062L,38063L,38064L,38065L,38066L,38067L,
9720138068L,38069L,38070L,38071L,38072L,38073L,38074L,38075L,38076L,38077L,
9720238078L,38079L,38080L,38081L,38082L,38083L,38084L,38085L,38086L,38087L,
9720338088L,38089L,38090L,38091L,38092L,38093L,38094L,38095L,38096L,38097L,
9720438098L,38099L,38100L,38101L,38102L,38103L,38104L,38105L,38106L,38107L,
9720538108L,38109L,38110L,38111L,38112L,38113L,38114L,38115L,38116L,38117L,
9720638118L,38119L,38120L,38121L,38122L,38123L,38124L,38125L,38126L,38127L,
9720738128L,38129L,38130L,38131L,38132L,38133L,38134L,38135L,38136L,38137L,
9720838138L,38139L,38140L,38141L,38142L,38143L,38144L,38145L,38146L,38147L,
9720938148L,38149L,38150L,38151L,38152L,38153L,38154L,38155L,38156L,38157L,
9721038158L,38159L,38160L,38161L,38162L,38163L,38164L,38165L,38166L,38167L,
9721138168L,38169L,38170L,38171L,38172L,38173L,38174L,38175L,38176L,38177L,
9721238178L,38179L,38180L,38181L,38182L,38183L,38184L,38185L,38186L,38187L,
9721338188L,38189L,38190L,38191L,38192L,38193L,38194L,38195L,38196L,38197L,
9721438198L,38199L,38200L,38201L,38202L,38203L,38204L,38205L,38206L,38207L,
9721538208L,38209L,38210L,38211L,38212L,38213L,38214L,38215L,38216L,38217L,
9721638218L,38219L,38220L,38221L,38222L,38223L,38224L,38225L,38226L,38227L,
9721738228L,38229L,38230L,38231L,38232L,38233L,38234L,38235L,38236L,38237L,
9721838238L,38239L,38240L,38241L,38242L,38243L,38244L,38245L,38246L,38247L,
9721938248L,38249L,38250L,38251L,38252L,38253L,38254L,38255L,38256L,38257L,
9722038258L,38259L,38260L,38261L,38262L,38263L,38264L,38265L,38266L,38267L,
9722138268L,38269L,38270L,38271L,38272L,38273L,38274L,38275L,38276L,38277L,
9722238278L,38279L,38280L,38281L,38282L,38283L,38284L,38285L,38286L,38287L,
9722338288L,38289L,38290L,38291L,38292L,38293L,38294L,38295L,38296L,38297L,
9722438298L,38299L,38300L,38301L,38302L,38303L,38304L,38305L,38306L,38307L,
9722538308L,38309L,38310L,38311L,38312L,38313L,38314L,38315L,38316L,38317L,
9722638318L,38319L,38320L,38321L,38322L,38323L,38324L,38325L,38326L,38327L,
9722738328L,38329L,38330L,38331L,38332L,38333L,38334L,38335L,38336L,38337L,
9722838338L,38339L,38340L,38341L,38342L,38343L,38344L,38345L,38346L,38347L,
9722938348L,38349L,38350L,38351L,38352L,38353L,38354L,38355L,38356L,38357L,
9723038358L,38359L,38360L,38361L,38362L,38363L,38364L,38365L,38366L,38367L,
9723138368L,38369L,38370L,38371L,38372L,38373L,38374L,38375L,38376L,38377L,
9723238378L,38379L,38380L,38381L,38382L,38383L,38384L,38385L,38386L,38387L,
9723338388L,38389L,38390L,38391L,38392L,38393L,38394L,38395L,38396L,38397L,
9723438398L,38399L,38400L,38401L,38402L,38403L,38404L,38405L,38406L,38407L,
9723538408L,38409L,38410L,38411L,38412L,38413L,38414L,38415L,38416L,38417L,
9723638418L,38419L,38420L,38421L,38422L,38423L,38424L,38425L,38426L,38427L,
9723738428L,38429L,38430L,38431L,38432L,38433L,38434L,38435L,38436L,38437L,
9723838438L,38439L,38440L,38441L,38442L,38443L,38444L,38445L,38446L,38447L,
9723938448L,38449L,38450L,38451L,38452L,38453L,38454L,38455L,38456L,38457L,
9724038458L,38459L,38460L,38461L,38462L,38463L,38464L,38465L,38466L,38467L,
9724138468L,38469L,38470L,38471L,38472L,38473L,38474L,38475L,38476L,38477L,
9724238478L,38479L,38480L,38481L,38482L,38483L,38484L,38485L,38486L,38487L,
9724338488L,38489L,38490L,38491L,38492L,38493L,38494L,38495L,38496L,38497L,
9724438498L,38499L,38500L,38501L,38502L,38503L,38504L,38505L,38506L,38507L,
9724538508L,38509L,38510L,38511L,38512L,38513L,38514L,38515L,38516L,38517L,
9724638518L,38519L,38520L,38521L,38522L,38523L,38524L,38525L,38526L,38527L,
9724738528L,38529L,38530L,38531L,38532L,38533L,38534L,38535L,38536L,38537L,
9724838538L,38539L,38540L,38541L,38542L,38543L,38544L,38545L,38546L,38547L,
9724938548L,38549L,38550L,38551L,38552L,38553L,38554L,38555L,38556L,38557L,
9725038558L,38559L,38560L,38561L,38562L,38563L,38564L,38565L,38566L,38567L,
9725138568L,38569L,38570L,38571L,38572L,38573L,38574L,38575L,38576L,38577L,
9725238578L,38579L,38580L,38581L,38582L,38583L,38584L,38585L,38586L,38587L,
9725338588L,38589L,38590L,38591L,38592L,38593L,38594L,38595L,38596L,38597L,
9725438598L,38599L,38600L,38601L,38602L,38603L,38604L,38605L,38606L,38607L,
9725538608L,38609L,38610L,38611L,38612L,38613L,38614L,38615L,38616L,38617L,
9725638618L,38619L,38620L,38621L,38622L,38623L,38624L,38625L,38626L,38627L,
9725738628L,38629L,38630L,38631L,38632L,38633L,38634L,38635L,38636L,38637L,
9725838638L,38639L,38640L,38641L,38642L,38643L,38644L,38645L,38646L,38647L,
9725938648L,38649L,38650L,38651L,38652L,38653L,38654L,38655L,38656L,38657L,
9726038658L,38659L,38660L,38661L,38662L,38663L,38664L,38665L,38666L,38667L,
9726138668L,38669L,38670L,38671L,38672L,38673L,38674L,38675L,38676L,38677L,
9726238678L,38679L,38680L,38681L,38682L,38683L,38684L,38685L,38686L,38687L,
9726338688L,38689L,38690L,38691L,38692L,38693L,38694L,38695L,38696L,38697L,
9726438698L,38699L,38700L,38701L,38702L,38703L,38704L,38705L,38706L,38707L,
9726538708L,38709L,38710L,38711L,38712L,38713L,38714L,38715L,38716L,38717L,
9726638718L,38719L,38720L,38721L,38722L,38723L,38724L,38725L,38726L,38727L,
9726738728L,38729L,38730L,38731L,38732L,38733L,38734L,38735L,38736L,38737L,
9726838738L,38739L,38740L,38741L,38742L,38743L,38744L,38745L,38746L,38747L,
9726938748L,38749L,38750L,38751L,38752L,38753L,38754L,38755L,38756L,38757L,
9727038758L,38759L,38760L,38761L,38762L,38763L,38764L,38765L,38766L,38767L,
9727138768L,38769L,38770L,38771L,38772L,38773L,38774L,38775L,38776L,38777L,
9727238778L,38779L,38780L,38781L,38782L,38783L,38784L,38785L,38786L,38787L,
9727338788L,38789L,38790L,38791L,38792L,38793L,38794L,38795L,38796L,38797L,
9727438798L,38799L,38800L,38801L,38802L,38803L,38804L,38805L,38806L,38807L,
9727538808L,38809L,38810L,38811L,38812L,38813L,38814L,38815L,38816L,38817L,
9727638818L,38819L,38820L,38821L,38822L,38823L,38824L,38825L,38826L,38827L,
9727738828L,38829L,38830L,38831L,38832L,38833L,38834L,38835L,38836L,38837L,
9727838838L,38839L,38840L,38841L,38842L,38843L,38844L,38845L,38846L,38847L,
9727938848L,38849L,38850L,38851L,38852L,38853L,38854L,38855L,38856L,38857L,
9728038858L,38859L,38860L,38861L,38862L,38863L,38864L,38865L,38866L,38867L,
9728138868L,38869L,38870L,38871L,38872L,38873L,38874L,38875L,38876L,38877L,
9728238878L,38879L,38880L,38881L,38882L,38883L,38884L,38885L,38886L,38887L,
9728338888L,38889L,38890L,38891L,38892L,38893L,38894L,38895L,38896L,38897L,
9728438898L,38899L,38900L,38901L,38902L,38903L,38904L,38905L,38906L,38907L,
9728538908L,38909L,38910L,38911L,38912L,38913L,38914L,38915L,38916L,38917L,
9728638918L,38919L,38920L,38921L,38922L,38923L,38924L,38925L,38926L,38927L,
9728738928L,38929L,38930L,38931L,38932L,38933L,38934L,38935L,38936L,38937L,
9728838938L,38939L,38940L,38941L,38942L,38943L,38944L,38945L,38946L,38947L,
9728938948L,38949L,38950L,38951L,38952L,38953L,38954L,38955L,38956L,38957L,
9729038958L,38959L,38960L,38961L,38962L,38963L,38964L,38965L,38966L,38967L,
9729138968L,38969L,38970L,38971L,38972L,38973L,38974L,38975L,38976L,38977L,
9729238978L,38979L,38980L,38981L,38982L,38983L,38984L,38985L,38986L,38987L,
9729338988L,38989L,38990L,38991L,38992L,38993L,38994L,38995L,38996L,38997L,
9729438998L,38999L,39000L,39001L,39002L,39003L,39004L,39005L,39006L,39007L,
9729539008L,39009L,39010L,39011L,39012L,39013L,39014L,39015L,39016L,39017L,
9729639018L,39019L,39020L,39021L,39022L,39023L,39024L,39025L,39026L,39027L,
9729739028L,39029L,39030L,39031L,39032L,39033L,39034L,39035L,39036L,39037L,
9729839038L,39039L,39040L,39041L,39042L,39043L,39044L,39045L,39046L,39047L,
9729939048L,39049L,39050L,39051L,39052L,39053L,39054L,39055L,39056L,39057L,
9730039058L,39059L,39060L,39061L,39062L,39063L,39064L,39065L,39066L,39067L,
9730139068L,39069L,39070L,39071L,39072L,39073L,39074L,39075L,39076L,39077L,
9730239078L,39079L,39080L,39081L,39082L,39083L,39084L,39085L,39086L,39087L,
9730339088L,39089L,39090L,39091L,39092L,39093L,39094L,39095L,39096L,39097L,
9730439098L,39099L,39100L,39101L,39102L,39103L,39104L,39105L,39106L,39107L,
9730539108L,39109L,39110L,39111L,39112L,39113L,39114L,39115L,39116L,39117L,
9730639118L,39119L,39120L,39121L,39122L,39123L,39124L,39125L,39126L,39127L,
9730739128L,39129L,39130L,39131L,39132L,39133L,39134L,39135L,39136L,39137L,
9730839138L,39139L,39140L,39141L,39142L,39143L,39144L,39145L,39146L,39147L,
9730939148L,39149L,39150L,39151L,39152L,39153L,39154L,39155L,39156L,39157L,
9731039158L,39159L,39160L,39161L,39162L,39163L,39164L,39165L,39166L,39167L,
9731139168L,39169L,39170L,39171L,39172L,39173L,39174L,39175L,39176L,39177L,
9731239178L,39179L,39180L,39181L,39182L,39183L,39184L,39185L,39186L,39187L,
9731339188L,39189L,39190L,39191L,39192L,39193L,39194L,39195L,39196L,39197L,
9731439198L,39199L,39200L,39201L,39202L,39203L,39204L,39205L,39206L,39207L,
9731539208L,39209L,39210L,39211L,39212L,39213L,39214L,39215L,39216L,39217L,
9731639218L,39219L,39220L,39221L,39222L,39223L,39224L,39225L,39226L,39227L,
9731739228L,39229L,39230L,39231L,39232L,39233L,39234L,39235L,39236L,39237L,
9731839238L,39239L,39240L,39241L,39242L,39243L,39244L,39245L,39246L,39247L,
9731939248L,39249L,39250L,39251L,39252L,39253L,39254L,39255L,39256L,39257L,
9732039258L,39259L,39260L,39261L,39262L,39263L,39264L,39265L,39266L,39267L,
9732139268L,39269L,39270L,39271L,39272L,39273L,39274L,39275L,39276L,39277L,
9732239278L,39279L,39280L,39281L,39282L,39283L,39284L,39285L,39286L,39287L,
9732339288L,39289L,39290L,39291L,39292L,39293L,39294L,39295L,39296L,39297L,
9732439298L,39299L,39300L,39301L,39302L,39303L,39304L,39305L,39306L,39307L,
9732539308L,39309L,39310L,39311L,39312L,39313L,39314L,39315L,39316L,39317L,
9732639318L,39319L,39320L,39321L,39322L,39323L,39324L,39325L,39326L,39327L,
9732739328L,39329L,39330L,39331L,39332L,39333L,39334L,39335L,39336L,39337L,
9732839338L,39339L,39340L,39341L,39342L,39343L,39344L,39345L,39346L,39347L,
9732939348L,39349L,39350L,39351L,39352L,39353L,39354L,39355L,39356L,39357L,
9733039358L,39359L,39360L,39361L,39362L,39363L,39364L,39365L,39366L,39367L,
9733139368L,39369L,39370L,39371L,39372L,39373L,39374L,39375L,39376L,39377L,
9733239378L,39379L,39380L,39381L,39382L,39383L,39384L,39385L,39386L,39387L,
9733339388L,39389L,39390L,39391L,39392L,39393L,39394L,39395L,39396L,39397L,
9733439398L,39399L,39400L,39401L,39402L,39403L,39404L,39405L,39406L,39407L,
9733539408L,39409L,39410L,39411L,39412L,39413L,39414L,39415L,39416L,39417L,
9733639418L,39419L,39420L,39421L,39422L,39423L,39424L,39425L,39426L,39427L,
9733739428L,39429L,39430L,39431L,39432L,39433L,39434L,39435L,39436L,39437L,
9733839438L,39439L,39440L,39441L,39442L,39443L,39444L,39445L,39446L,39447L,
9733939448L,39449L,39450L,39451L,39452L,39453L,39454L,39455L,39456L,39457L,
9734039458L,39459L,39460L,39461L,39462L,39463L,39464L,39465L,39466L,39467L,
9734139468L,39469L,39470L,39471L,39472L,39473L,39474L,39475L,39476L,39477L,
9734239478L,39479L,39480L,39481L,39482L,39483L,39484L,39485L,39486L,39487L,
9734339488L,39489L,39490L,39491L,39492L,39493L,39494L,39495L,39496L,39497L,
9734439498L,39499L,39500L,39501L,39502L,39503L,39504L,39505L,39506L,39507L,
9734539508L,39509L,39510L,39511L,39512L,39513L,39514L,39515L,39516L,39517L,
9734639518L,39519L,39520L,39521L,39522L,39523L,39524L,39525L,39526L,39527L,
9734739528L,39529L,39530L,39531L,39532L,39533L,39534L,39535L,39536L,39537L,
9734839538L,39539L,39540L,39541L,39542L,39543L,39544L,39545L,39546L,39547L,
9734939548L,39549L,39550L,39551L,39552L,39553L,39554L,39555L,39556L,39557L,
9735039558L,39559L,39560L,39561L,39562L,39563L,39564L,39565L,39566L,39567L,
9735139568L,39569L,39570L,39571L,39572L,39573L,39574L,39575L,39576L,39577L,
9735239578L,39579L,39580L,39581L,39582L,39583L,39584L,39585L,39586L,39587L,
9735339588L,39589L,39590L,39591L,39592L,39593L,39594L,39595L,39596L,39597L,
9735439598L,39599L,39600L,39601L,39602L,39603L,39604L,39605L,39606L,39607L,
9735539608L,39609L,39610L,39611L,39612L,39613L,39614L,39615L,39616L,39617L,
9735639618L,39619L,39620L,39621L,39622L,39623L,39624L,39625L,39626L,39627L,
9735739628L,39629L,39630L,39631L,39632L,39633L,39634L,39635L,39636L,39637L,
9735839638L,39639L,39640L,39641L,39642L,39643L,39644L,39645L,39646L,39647L,
9735939648L,39649L,39650L,39651L,39652L,39653L,39654L,39655L,39656L,39657L,
9736039658L,39659L,39660L,39661L,39662L,39663L,39664L,39665L,39666L,39667L,
9736139668L,39669L,39670L,39671L,39672L,39673L,39674L,39675L,39676L,39677L,
9736239678L,39679L,39680L,39681L,39682L,39683L,39684L,39685L,39686L,39687L,
9736339688L,39689L,39690L,39691L,39692L,39693L,39694L,39695L,39696L,39697L,
9736439698L,39699L,39700L,39701L,39702L,39703L,39704L,39705L,39706L,39707L,
9736539708L,39709L,39710L,39711L,39712L,39713L,39714L,39715L,39716L,39717L,
9736639718L,39719L,39720L,39721L,39722L,39723L,39724L,39725L,39726L,39727L,
9736739728L,39729L,39730L,39731L,39732L,39733L,39734L,39735L,39736L,39737L,
9736839738L,39739L,39740L,39741L,39742L,39743L,39744L,39745L,39746L,39747L,
9736939748L,39749L,39750L,39751L,39752L,39753L,39754L,39755L,39756L,39757L,
9737039758L,39759L,39760L,39761L,39762L,39763L,39764L,39765L,39766L,39767L,
9737139768L,39769L,39770L,39771L,39772L,39773L,39774L,39775L,39776L,39777L,
9737239778L,39779L,39780L,39781L,39782L,39783L,39784L,39785L,39786L,39787L,
9737339788L,39789L,39790L,39791L,39792L,39793L,39794L,39795L,39796L,39797L,
9737439798L,39799L,39800L,39801L,39802L,39803L,39804L,39805L,39806L,39807L,
9737539808L,39809L,39810L,39811L,39812L,39813L,39814L,39815L,39816L,39817L,
9737639818L,39819L,39820L,39821L,39822L,39823L,39824L,39825L,39826L,39827L,
9737739828L,39829L,39830L,39831L,39832L,39833L,39834L,39835L,39836L,39837L,
9737839838L,39839L,39840L,39841L,39842L,39843L,39844L,39845L,39846L,39847L,
9737939848L,39849L,39850L,39851L,39852L,39853L,39854L,39855L,39856L,39857L,
9738039858L,39859L,39860L,39861L,39862L,39863L,39864L,39865L,39866L,39867L,
9738139868L,39869L,39870L,39871L,39872L,39873L,39874L,39875L,39876L,39877L,
9738239878L,39879L,39880L,39881L,39882L,39883L,39884L,39885L,39886L,39887L,
9738339888L,39889L,39890L,39891L,39892L,39893L,39894L,39895L,39896L,39897L,
9738439898L,39899L,39900L,39901L,39902L,39903L,39904L,39905L,39906L,39907L,
9738539908L,39909L,39910L,39911L,39912L,39913L,39914L,39915L,39916L,39917L,
9738639918L,39919L,39920L,39921L,39922L,39923L,39924L,39925L,39926L,39927L,
9738739928L,39929L,39930L,39931L,39932L,39933L,39934L,39935L,39936L,39937L,
9738839938L,39939L,39940L,39941L,39942L,39943L,39944L,39945L,39946L,39947L,
9738939948L,39949L,39950L,39951L,39952L,39953L,39954L,39955L,39956L,39957L,
9739039958L,39959L,39960L,39961L,39962L,39963L,39964L,39965L,39966L,39967L,
9739139968L,39969L,39970L,39971L,39972L,39973L,39974L,39975L,39976L,39977L,
9739239978L,39979L,39980L,39981L,39982L,39983L,39984L,39985L,39986L,39987L,
9739339988L,39989L,39990L,39991L,39992L,39993L,39994L,39995L,39996L,39997L,
9739439998L,39999L,40000L,40001L,40002L,40003L,40004L,40005L,40006L,40007L,
9739540008L,40009L,40010L,40011L,40012L,40013L,40014L,40015L,40016L,40017L,
9739640018L,40019L,40020L,40021L,40022L,40023L,40024L,40025L,40026L,40027L,
9739740028L,40029L,40030L,40031L,40032L,40033L,40034L,40035L,40036L,40037L,
9739840038L,40039L,40040L,40041L,40042L,40043L,40044L,40045L,40046L,40047L,
9739940048L,40049L,40050L,40051L,40052L,40053L,40054L,40055L,40056L,40057L,
9740040058L,40059L,40060L,40061L,40062L,40063L,40064L,40065L,40066L,40067L,
9740140068L,40069L,40070L,40071L,40072L,40073L,40074L,40075L,40076L,40077L,
9740240078L,40079L,40080L,40081L,40082L,40083L,40084L,40085L,40086L,40087L,
9740340088L,40089L,40090L,40091L,40092L,40093L,40094L,40095L,40096L,40097L,
9740440098L,40099L,40100L,40101L,40102L,40103L,40104L,40105L,40106L,40107L,
9740540108L,40109L,40110L,40111L,40112L,40113L,40114L,40115L,40116L,40117L,
9740640118L,40119L,40120L,40121L,40122L,40123L,40124L,40125L,40126L,40127L,
9740740128L,40129L,40130L,40131L,40132L,40133L,40134L,40135L,40136L,40137L,
9740840138L,40139L,40140L,40141L,40142L,40143L,40144L,40145L,40146L,40147L,
9740940148L,40149L,40150L,40151L,40152L,40153L,40154L,40155L,40156L,40157L,
9741040158L,40159L,40160L,40161L,40162L,40163L,40164L,40165L,40166L,40167L,
9741140168L,40169L,40170L,40171L,40172L,40173L,40174L,40175L,40176L,40177L,
9741240178L,40179L,40180L,40181L,40182L,40183L,40184L,40185L,40186L,40187L,
9741340188L,40189L,40190L,40191L,40192L,40193L,40194L,40195L,40196L,40197L,
9741440198L,40199L,40200L,40201L,40202L,40203L,40204L,40205L,40206L,40207L,
9741540208L,40209L,40210L,40211L,40212L,40213L,40214L,40215L,40216L,40217L,
9741640218L,40219L,40220L,40221L,40222L,40223L,40224L,40225L,40226L,40227L,
9741740228L,40229L,40230L,40231L,40232L,40233L,40234L,40235L,40236L,40237L,
9741840238L,40239L,40240L,40241L,40242L,40243L,40244L,40245L,40246L,40247L,
9741940248L,40249L,40250L,40251L,40252L,40253L,40254L,40255L,40256L,40257L,
9742040258L,40259L,40260L,40261L,40262L,40263L,40264L,40265L,40266L,40267L,
9742140268L,40269L,40270L,40271L,40272L,40273L,40274L,40275L,40276L,40277L,
9742240278L,40279L,40280L,40281L,40282L,40283L,40284L,40285L,40286L,40287L,
9742340288L,40289L,40290L,40291L,40292L,40293L,40294L,40295L,40296L,40297L,
9742440298L,40299L,40300L,40301L,40302L,40303L,40304L,40305L,40306L,40307L,
9742540308L,40309L,40310L,40311L,40312L,40313L,40314L,40315L,40316L,40317L,
9742640318L,40319L,40320L,40321L,40322L,40323L,40324L,40325L,40326L,40327L,
9742740328L,40329L,40330L,40331L,40332L,40333L,40334L,40335L,40336L,40337L,
9742840338L,40339L,40340L,40341L,40342L,40343L,40344L,40345L,40346L,40347L,
9742940348L,40349L,40350L,40351L,40352L,40353L,40354L,40355L,40356L,40357L,
9743040358L,40359L,40360L,40361L,40362L,40363L,40364L,40365L,40366L,40367L,
9743140368L,40369L,40370L,40371L,40372L,40373L,40374L,40375L,40376L,40377L,
9743240378L,40379L,40380L,40381L,40382L,40383L,40384L,40385L,40386L,40387L,
9743340388L,40389L,40390L,40391L,40392L,40393L,40394L,40395L,40396L,40397L,
9743440398L,40399L,40400L,40401L,40402L,40403L,40404L,40405L,40406L,40407L,
9743540408L,40409L,40410L,40411L,40412L,40413L,40414L,40415L,40416L,40417L,
9743640418L,40419L,40420L,40421L,40422L,40423L,40424L,40425L,40426L,40427L,
9743740428L,40429L,40430L,40431L,40432L,40433L,40434L,40435L,40436L,40437L,
9743840438L,40439L,40440L,40441L,40442L,40443L,40444L,40445L,40446L,40447L,
9743940448L,40449L,40450L,40451L,40452L,40453L,40454L,40455L,40456L,40457L,
9744040458L,40459L,40460L,40461L,40462L,40463L,40464L,40465L,40466L,40467L,
9744140468L,40469L,40470L,40471L,40472L,40473L,40474L,40475L,40476L,40477L,
9744240478L,40479L,40480L,40481L,40482L,40483L,40484L,40485L,40486L,40487L,
9744340488L,40489L,40490L,40491L,40492L,40493L,40494L,40495L,40496L,40497L,
9744440498L,40499L,40500L,40501L,40502L,40503L,40504L,40505L,40506L,40507L,
9744540508L,40509L,40510L,40511L,40512L,40513L,40514L,40515L,40516L,40517L,
9744640518L,40519L,40520L,40521L,40522L,40523L,40524L,40525L,40526L,40527L,
9744740528L,40529L,40530L,40531L,40532L,40533L,40534L,40535L,40536L,40537L,
9744840538L,40539L,40540L,40541L,40542L,40543L,40544L,40545L,40546L,40547L,
9744940548L,40549L,40550L,40551L,40552L,40553L,40554L,40555L,40556L,40557L,
9745040558L,40559L,40560L,40561L,40562L,40563L,40564L,40565L,40566L,40567L,
9745140568L,40569L,40570L,40571L,40572L,40573L,40574L,40575L,40576L,40577L,
9745240578L,40579L,40580L,40581L,40582L,40583L,40584L,40585L,40586L,40587L,
9745340588L,40589L,40590L,40591L,40592L,40593L,40594L,40595L,40596L,40597L,
9745440598L,40599L,40600L,40601L,40602L,40603L,40604L,40605L,40606L,40607L,
9745540608L,40609L,40610L,40611L,40612L,40613L,40614L,40615L,40616L,40617L,
9745640618L,40619L,40620L,40621L,40622L,40623L,40624L,40625L,40626L,40627L,
9745740628L,40629L,40630L,40631L,40632L,40633L,40634L,40635L,40636L,40637L,
9745840638L,40639L,40640L,40641L,40642L,40643L,40644L,40645L,40646L,40647L,
9745940648L,40649L,40650L,40651L,40652L,40653L,40654L,40655L,40656L,40657L,
9746040658L,40659L,40660L,40661L,40662L,40663L,40664L,40665L,40666L,40667L,
9746140668L,40669L,40670L,40671L,40672L,40673L,40674L,40675L,40676L,40677L,
9746240678L,40679L,40680L,40681L,40682L,40683L,40684L,40685L,40686L,40687L,
9746340688L,40689L,40690L,40691L,40692L,40693L,40694L,40695L,40696L,40697L,
9746440698L,40699L,40700L,40701L,40702L,40703L,40704L,40705L,40706L,40707L,
9746540708L,40709L,40710L,40711L,40712L,40713L,40714L,40715L,40716L,40717L,
9746640718L,40719L,40720L,40721L,40722L,40723L,40724L,40725L,40726L,40727L,
9746740728L,40729L,40730L,40731L,40732L,40733L,40734L,40735L,40736L,40737L,
9746840738L,40739L,40740L,40741L,40742L,40743L,40744L,40745L,40746L,40747L,
9746940748L,40749L,40750L,40751L,40752L,40753L,40754L,40755L,40756L,40757L,
9747040758L,40759L,40760L,40761L,40762L,40763L,40764L,40765L,40766L,40767L,
9747140768L,40769L,40770L,40771L,40772L,40773L,40774L,40775L,40776L,40777L,
9747240778L,40779L,40780L,40781L,40782L,40783L,40784L,40785L,40786L,40787L,
9747340788L,40789L,40790L,40791L,40792L,40793L,40794L,40795L,40796L,40797L,
9747440798L,40799L,40800L,40801L,40802L,40803L,40804L,40805L,40806L,40807L,
9747540808L,40809L,40810L,40811L,40812L,40813L,40814L,40815L,40816L,40817L,
9747640818L,40819L,40820L,40821L,40822L,40823L,40824L,40825L,40826L,40827L,
9747740828L,40829L,40830L,40831L,40832L,40833L,40834L,40835L,40836L,40837L,
9747840838L,40839L,40840L,40841L,40842L,40843L,40844L,40845L,40846L,40847L,
9747940848L,40849L,40850L,40851L,40852L,40853L,40854L,40855L,40856L,40857L,
9748040858L,40859L,40860L,40861L,40862L,40863L,40864L,40865L,40866L,40867L,
9748140868L,40869L,40870L,40871L,40872L,40873L,40874L,40875L,40876L,40877L,
9748240878L,40879L,40880L,40881L,40882L,40883L,40884L,40885L,40886L,40887L,
9748340888L,40889L,40890L,40891L,40892L,40893L,40894L,40895L,40896L,40897L,
9748440898L,40899L,40900L,40901L,40902L,40903L,40904L,40905L,40906L,40907L,
9748540908L,40909L,40910L,40911L,40912L,40913L,40914L,40915L,40916L,40917L,
9748640918L,40919L,40920L,40921L,40922L,40923L,40924L,40925L,40926L,40927L,
9748740928L,40929L,40930L,40931L,40932L,40933L,40934L,40935L,40936L,40937L,
9748840938L,40939L,40940L,40941L,40942L,40943L,40944L,40945L,40946L,40947L,
9748940948L,40949L,40950L,40951L,40952L,40953L,40954L,40955L,40956L,40957L,
9749040958L,40959L,40960L,40961L,40962L,40963L,40964L,40965L,40966L,40967L,
9749140968L,40969L,40970L,40971L,40972L,40973L,40974L,40975L,40976L,40977L,
9749240978L,40979L,40980L,40981L,40982L,40983L,40984L,40985L,40986L,40987L,
9749340988L,40989L,40990L,40991L,40992L,40993L,40994L,40995L,40996L,40997L,
9749440998L,40999L,41000L,41001L,41002L,41003L,41004L,41005L,41006L,41007L,
9749541008L,41009L,41010L,41011L,41012L,41013L,41014L,41015L,41016L,41017L,
9749641018L,41019L,41020L,41021L,41022L,41023L,41024L,41025L,41026L,41027L,
9749741028L,41029L,41030L,41031L,41032L,41033L,41034L,41035L,41036L,41037L,
9749841038L,41039L,41040L,41041L,41042L,41043L,41044L,41045L,41046L,41047L,
9749941048L,41049L,41050L,41051L,41052L,41053L,41054L,41055L,41056L,41057L,
9750041058L,41059L,41060L,41061L,41062L,41063L,41064L,41065L,41066L,41067L,
9750141068L,41069L,41070L,41071L,41072L,41073L,41074L,41075L,41076L,41077L,
9750241078L,41079L,41080L,41081L,41082L,41083L,41084L,41085L,41086L,41087L,
9750341088L,41089L,41090L,41091L,41092L,41093L,41094L,41095L,41096L,41097L,
9750441098L,41099L,41100L,41101L,41102L,41103L,41104L,41105L,41106L,41107L,
9750541108L,41109L,41110L,41111L,41112L,41113L,41114L,41115L,41116L,41117L,
9750641118L,41119L,41120L,41121L,41122L,41123L,41124L,41125L,41126L,41127L,
9750741128L,41129L,41130L,41131L,41132L,41133L,41134L,41135L,41136L,41137L,
9750841138L,41139L,41140L,41141L,41142L,41143L,41144L,41145L,41146L,41147L,
9750941148L,41149L,41150L,41151L,41152L,41153L,41154L,41155L,41156L,41157L,
9751041158L,41159L,41160L,41161L,41162L,41163L,41164L,41165L,41166L,41167L,
9751141168L,41169L,41170L,41171L,41172L,41173L,41174L,41175L,41176L,41177L,
9751241178L,41179L,41180L,41181L,41182L,41183L,41184L,41185L,41186L,41187L,
9751341188L,41189L,41190L,41191L,41192L,41193L,41194L,41195L,41196L,41197L,
9751441198L,41199L,41200L,41201L,41202L,41203L,41204L,41205L,41206L,41207L,
9751541208L,41209L,41210L,41211L,41212L,41213L,41214L,41215L,41216L,41217L,
9751641218L,41219L,41220L,41221L,41222L,41223L,41224L,41225L,41226L,41227L,
9751741228L,41229L,41230L,41231L,41232L,41233L,41234L,41235L,41236L,41237L,
9751841238L,41239L,41240L,41241L,41242L,41243L,41244L,41245L,41246L,41247L,
9751941248L,41249L,41250L,41251L,41252L,41253L,41254L,41255L,41256L,41257L,
9752041258L,41259L,41260L,41261L,41262L,41263L,41264L,41265L,41266L,41267L,
9752141268L,41269L,41270L,41271L,41272L,41273L,41274L,41275L,41276L,41277L,
9752241278L,41279L,41280L,41281L,41282L,41283L,41284L,41285L,41286L,41287L,
9752341288L,41289L,41290L,41291L,41292L,41293L,41294L,41295L,41296L,41297L,
9752441298L,41299L,41300L,41301L,41302L,41303L,41304L,41305L,41306L,41307L,
9752541308L,41309L,41310L,41311L,41312L,41313L,41314L,41315L,41316L,41317L,
9752641318L,41319L,41320L,41321L,41322L,41323L,41324L,41325L,41326L,41327L,
9752741328L,41329L,41330L,41331L,41332L,41333L,41334L,41335L,41336L,41337L,
9752841338L,41339L,41340L,41341L,41342L,41343L,41344L,41345L,41346L,41347L,
9752941348L,41349L,41350L,41351L,41352L,41353L,41354L,41355L,41356L,41357L,
9753041358L,41359L,41360L,41361L,41362L,41363L,41364L,41365L,41366L,41367L,
9753141368L,41369L,41370L,41371L,41372L,41373L,41374L,41375L,41376L,41377L,
9753241378L,41379L,41380L,41381L,41382L,41383L,41384L,41385L,41386L,41387L,
9753341388L,41389L,41390L,41391L,41392L,41393L,41394L,41395L,41396L,41397L,
9753441398L,41399L,41400L,41401L,41402L,41403L,41404L,41405L,41406L,41407L,
9753541408L,41409L,41410L,41411L,41412L,41413L,41414L,41415L,41416L,41417L,
9753641418L,41419L,41420L,41421L,41422L,41423L,41424L,41425L,41426L,41427L,
9753741428L,41429L,41430L,41431L,41432L,41433L,41434L,41435L,41436L,41437L,
9753841438L,41439L,41440L,41441L,41442L,41443L,41444L,41445L,41446L,41447L,
9753941448L,41449L,41450L,41451L,41452L,41453L,41454L,41455L,41456L,41457L,
9754041458L,41459L,41460L,41461L,41462L,41463L,41464L,41465L,41466L,41467L,
9754141468L,41469L,41470L,41471L,41472L,41473L,41474L,41475L,41476L,41477L,
9754241478L,41479L,41480L,41481L,41482L,41483L,41484L,41485L,41486L,41487L,
9754341488L,41489L,41490L,41491L,41492L,41493L,41494L,41495L,41496L,41497L,
9754441498L,41499L,41500L,41501L,41502L,41503L,41504L,41505L,41506L,41507L,
9754541508L,41509L,41510L,41511L,41512L,41513L,41514L,41515L,41516L,41517L,
9754641518L,41519L,41520L,41521L,41522L,41523L,41524L,41525L,41526L,41527L,
9754741528L,41529L,41530L,41531L,41532L,41533L,41534L,41535L,41536L,41537L,
9754841538L,41539L,41540L,41541L,41542L,41543L,41544L,41545L,41546L,41547L,
9754941548L,41549L,41550L,41551L,41552L,41553L,41554L,41555L,41556L,41557L,
9755041558L,41559L,41560L,41561L,41562L,41563L,41564L,41565L,41566L,41567L,
9755141568L,41569L,41570L,41571L,41572L,41573L,41574L,41575L,41576L,41577L,
9755241578L,41579L,41580L,41581L,41582L,41583L,41584L,41585L,41586L,41587L,
9755341588L,41589L,41590L,41591L,41592L,41593L,41594L,41595L,41596L,41597L,
9755441598L,41599L,41600L,41601L,41602L,41603L,41604L,41605L,41606L,41607L,
9755541608L,41609L,41610L,41611L,41612L,41613L,41614L,41615L,41616L,41617L,
9755641618L,41619L,41620L,41621L,41622L,41623L,41624L,41625L,41626L,41627L,
9755741628L,41629L,41630L,41631L,41632L,41633L,41634L,41635L,41636L,41637L,
9755841638L,41639L,41640L,41641L,41642L,41643L,41644L,41645L,41646L,41647L,
9755941648L,41649L,41650L,41651L,41652L,41653L,41654L,41655L,41656L,41657L,
9756041658L,41659L,41660L,41661L,41662L,41663L,41664L,41665L,41666L,41667L,
9756141668L,41669L,41670L,41671L,41672L,41673L,41674L,41675L,41676L,41677L,
9756241678L,41679L,41680L,41681L,41682L,41683L,41684L,41685L,41686L,41687L,
9756341688L,41689L,41690L,41691L,41692L,41693L,41694L,41695L,41696L,41697L,
9756441698L,41699L,41700L,41701L,41702L,41703L,41704L,41705L,41706L,41707L,
9756541708L,41709L,41710L,41711L,41712L,41713L,41714L,41715L,41716L,41717L,
9756641718L,41719L,41720L,41721L,41722L,41723L,41724L,41725L,41726L,41727L,
9756741728L,41729L,41730L,41731L,41732L,41733L,41734L,41735L,41736L,41737L,
9756841738L,41739L,41740L,41741L,41742L,41743L,41744L,41745L,41746L,41747L,
9756941748L,41749L,41750L,41751L,41752L,41753L,41754L,41755L,41756L,41757L,
9757041758L,41759L,41760L,41761L,41762L,41763L,41764L,41765L,41766L,41767L,
9757141768L,41769L,41770L,41771L,41772L,41773L,41774L,41775L,41776L,41777L,
9757241778L,41779L,41780L,41781L,41782L,41783L,41784L,41785L,41786L,41787L,
9757341788L,41789L,41790L,41791L,41792L,41793L,41794L,41795L,41796L,41797L,
9757441798L,41799L,41800L,41801L,41802L,41803L,41804L,41805L,41806L,41807L,
9757541808L,41809L,41810L,41811L,41812L,41813L,41814L,41815L,41816L,41817L,
9757641818L,41819L,41820L,41821L,41822L,41823L,41824L,41825L,41826L,41827L,
9757741828L,41829L,41830L,41831L,41832L,41833L,41834L,41835L,41836L,41837L,
9757841838L,41839L,41840L,41841L,41842L,41843L,41844L,41845L,41846L,41847L,
9757941848L,41849L,41850L,41851L,41852L,41853L,41854L,41855L,41856L,41857L,
9758041858L,41859L,41860L,41861L,41862L,41863L,41864L,41865L,41866L,41867L,
9758141868L,41869L,41870L,41871L,41872L,41873L,41874L,41875L,41876L,41877L,
9758241878L,41879L,41880L,41881L,41882L,41883L,41884L,41885L,41886L,41887L,
9758341888L,41889L,41890L,41891L,41892L,41893L,41894L,41895L,41896L,41897L,
9758441898L,41899L,41900L,41901L,41902L,41903L,41904L,41905L,41906L,41907L,
9758541908L,41909L,41910L,41911L,41912L,41913L,41914L,41915L,41916L,41917L,
9758641918L,41919L,41920L,41921L,41922L,41923L,41924L,41925L,41926L,41927L,
9758741928L,41929L,41930L,41931L,41932L,41933L,41934L,41935L,41936L,41937L,
9758841938L,41939L,41940L,41941L,41942L,41943L,41944L,41945L,41946L,41947L,
9758941948L,41949L,41950L,41951L,41952L,41953L,41954L,41955L,41956L,41957L,
9759041958L,41959L,41960L,41961L,41962L,41963L,41964L,41965L,41966L,41967L,
9759141968L,41969L,41970L,41971L,41972L,41973L,41974L,41975L,41976L,41977L,
9759241978L,41979L,41980L,41981L,41982L,41983L,41984L,41985L,41986L,41987L,
9759341988L,41989L,41990L,41991L,41992L,41993L,41994L,41995L,41996L,41997L,
9759441998L,41999L,42000L,42001L,42002L,42003L,42004L,42005L,42006L,42007L,
9759542008L,42009L,42010L,42011L,42012L,42013L,42014L,42015L,42016L,42017L,
9759642018L,42019L,42020L,42021L,42022L,42023L,42024L,42025L,42026L,42027L,
9759742028L,42029L,42030L,42031L,42032L,42033L,42034L,42035L,42036L,42037L,
9759842038L,42039L,42040L,42041L,42042L,42043L,42044L,42045L,42046L,42047L,
9759942048L,42049L,42050L,42051L,42052L,42053L,42054L,42055L,42056L,42057L,
9760042058L,42059L,42060L,42061L,42062L,42063L,42064L,42065L,42066L,42067L,
9760142068L,42069L,42070L,42071L,42072L,42073L,42074L,42075L,42076L,42077L,
9760242078L,42079L,42080L,42081L,42082L,42083L,42084L,42085L,42086L,42087L,
9760342088L,42089L,42090L,42091L,42092L,42093L,42094L,42095L,42096L,42097L,
9760442098L,42099L,42100L,42101L,42102L,42103L,42104L,42105L,42106L,42107L,
9760542108L,42109L,42110L,42111L,42112L,42113L,42114L,42115L,42116L,42117L,
9760642118L,42119L,42120L,42121L,42122L,42123L,42124L,42125L,42126L,42127L,
9760742128L,42129L,42130L,42131L,42132L,42133L,42134L,42135L,42136L,42137L,
9760842138L,42139L,42140L,42141L,42142L,42143L,42144L,42145L,42146L,42147L,
9760942148L,42149L,42150L,42151L,42152L,42153L,42154L,42155L,42156L,42157L,
9761042158L,42159L,42160L,42161L,42162L,42163L,42164L,42165L,42166L,42167L,
9761142168L,42169L,42170L,42171L,42172L,42173L,42174L,42175L,42176L,42177L,
9761242178L,42179L,42180L,42181L,42182L,42183L,42184L,42185L,42186L,42187L,
9761342188L,42189L,42190L,42191L,42192L,42193L,42194L,42195L,42196L,42197L,
9761442198L,42199L,42200L,42201L,42202L,42203L,42204L,42205L,42206L,42207L,
9761542208L,42209L,42210L,42211L,42212L,42213L,42214L,42215L,42216L,42217L,
9761642218L,42219L,42220L,42221L,42222L,42223L,42224L,42225L,42226L,42227L,
9761742228L,42229L,42230L,42231L,42232L,42233L,42234L,42235L,42236L,42237L,
9761842238L,42239L,42240L,42241L,42242L,42243L,42244L,42245L,42246L,42247L,
9761942248L,42249L,42250L,42251L,42252L,42253L,42254L,42255L,42256L,42257L,
9762042258L,42259L,42260L,42261L,42262L,42263L,42264L,42265L,42266L,42267L,
9762142268L,42269L,42270L,42271L,42272L,42273L,42274L,42275L,42276L,42277L,
9762242278L,42279L,42280L,42281L,42282L,42283L,42284L,42285L,42286L,42287L,
9762342288L,42289L,42290L,42291L,42292L,42293L,42294L,42295L,42296L,42297L,
9762442298L,42299L,42300L,42301L,42302L,42303L,42304L,42305L,42306L,42307L,
9762542308L,42309L,42310L,42311L,42312L,42313L,42314L,42315L,42316L,42317L,
9762642318L,42319L,42320L,42321L,42322L,42323L,42324L,42325L,42326L,42327L,
9762742328L,42329L,42330L,42331L,42332L,42333L,42334L,42335L,42336L,42337L,
9762842338L,42339L,42340L,42341L,42342L,42343L,42344L,42345L,42346L,42347L,
9762942348L,42349L,42350L,42351L,42352L,42353L,42354L,42355L,42356L,42357L,
9763042358L,42359L,42360L,42361L,42362L,42363L,42364L,42365L,42366L,42367L,
9763142368L,42369L,42370L,42371L,42372L,42373L,42374L,42375L,42376L,42377L,
9763242378L,42379L,42380L,42381L,42382L,42383L,42384L,42385L,42386L,42387L,
9763342388L,42389L,42390L,42391L,42392L,42393L,42394L,42395L,42396L,42397L,
9763442398L,42399L,42400L,42401L,42402L,42403L,42404L,42405L,42406L,42407L,
9763542408L,42409L,42410L,42411L,42412L,42413L,42414L,42415L,42416L,42417L,
9763642418L,42419L,42420L,42421L,42422L,42423L,42424L,42425L,42426L,42427L,
9763742428L,42429L,42430L,42431L,42432L,42433L,42434L,42435L,42436L,42437L,
9763842438L,42439L,42440L,42441L,42442L,42443L,42444L,42445L,42446L,42447L,
9763942448L,42449L,42450L,42451L,42452L,42453L,42454L,42455L,42456L,42457L,
9764042458L,42459L,42460L,42461L,42462L,42463L,42464L,42465L,42466L,42467L,
9764142468L,42469L,42470L,42471L,42472L,42473L,42474L,42475L,42476L,42477L,
9764242478L,42479L,42480L,42481L,42482L,42483L,42484L,42485L,42486L,42487L,
9764342488L,42489L,42490L,42491L,42492L,42493L,42494L,42495L,42496L,42497L,
9764442498L,42499L,42500L,42501L,42502L,42503L,42504L,42505L,42506L,42507L,
9764542508L,42509L,42510L,42511L,42512L,42513L,42514L,42515L,42516L,42517L,
9764642518L,42519L,42520L,42521L,42522L,42523L,42524L,42525L,42526L,42527L,
9764742528L,42529L,42530L,42531L,42532L,42533L,42534L,42535L,42536L,42537L,
9764842538L,42539L,42540L,42541L,42542L,42543L,42544L,42545L,42546L,42547L,
9764942548L,42549L,42550L,42551L,42552L,42553L,42554L,42555L,42556L,42557L,
9765042558L,42559L,42560L,42560L,42562L,42562L,42564L,42564L,42566L,42566L,
9765142568L,42568L,42570L,42570L,42572L,42572L,42574L,42574L,42576L,42576L,
9765242578L,42578L,42580L,42580L,42582L,42582L,42584L,42584L,42586L,42586L,
9765342588L,42588L,42590L,42590L,42592L,42592L,42594L,42594L,42596L,42596L,
9765442598L,42598L,42600L,42600L,42602L,42602L,42604L,42604L,42606L,42607L,
9765542608L,42609L,42610L,42611L,42612L,42613L,42614L,42615L,42616L,42617L,
9765642618L,42619L,42620L,42621L,42622L,42623L,42624L,42624L,42626L,42626L,
9765742628L,42628L,42630L,42630L,42632L,42632L,42634L,42634L,42636L,42636L,
9765842638L,42638L,42640L,42640L,42642L,42642L,42644L,42644L,42646L,42646L,
9765942648L,42648L,42650L,42650L,42652L,42653L,42654L,42655L,42656L,42657L,
9766042658L,42659L,42660L,42661L,42662L,42663L,42664L,42665L,42666L,42667L,
9766142668L,42669L,42670L,42671L,42672L,42673L,42674L,42675L,42676L,42677L,
9766242678L,42679L,42680L,42681L,42682L,42683L,42684L,42685L,42686L,42687L,
9766342688L,42689L,42690L,42691L,42692L,42693L,42694L,42695L,42696L,42697L,
9766442698L,42699L,42700L,42701L,42702L,42703L,42704L,42705L,42706L,42707L,
9766542708L,42709L,42710L,42711L,42712L,42713L,42714L,42715L,42716L,42717L,
9766642718L,42719L,42720L,42721L,42722L,42723L,42724L,42725L,42726L,42727L,
9766742728L,42729L,42730L,42731L,42732L,42733L,42734L,42735L,42736L,42737L,
9766842738L,42739L,42740L,42741L,42742L,42743L,42744L,42745L,42746L,42747L,
9766942748L,42749L,42750L,42751L,42752L,42753L,42754L,42755L,42756L,42757L,
9767042758L,42759L,42760L,42761L,42762L,42763L,42764L,42765L,42766L,42767L,
9767142768L,42769L,42770L,42771L,42772L,42773L,42774L,42775L,42776L,42777L,
9767242778L,42779L,42780L,42781L,42782L,42783L,42784L,42785L,42786L,42786L,
9767342788L,42788L,42790L,42790L,42792L,42792L,42794L,42794L,42796L,42796L,
9767442798L,42798L,42800L,42801L,42802L,42802L,42804L,42804L,42806L,42806L,
9767542808L,42808L,42810L,42810L,42812L,42812L,42814L,42814L,42816L,42816L,
9767642818L,42818L,42820L,42820L,42822L,42822L,42824L,42824L,42826L,42826L,
9767742828L,42828L,42830L,42830L,42832L,42832L,42834L,42834L,42836L,42836L,
9767842838L,42838L,42840L,42840L,42842L,42842L,42844L,42844L,42846L,42846L,
9767942848L,42848L,42850L,42850L,42852L,42852L,42854L,42854L,42856L,42856L,
9768042858L,42858L,42860L,42860L,42862L,42862L,42864L,42865L,42866L,42867L,
9768142868L,42869L,42870L,42871L,42872L,42873L,42873L,42875L,42875L,42877L,
9768242878L,42878L,42880L,42880L,42882L,42882L,42884L,42884L,42886L,42886L,
9768342888L,42889L,42890L,42891L,42891L,42893L,42894L,42895L,42896L,42896L,
9768442898L,42898L,42948L,42901L,42902L,42902L,42904L,42904L,42906L,42906L,
9768542908L,42908L,42910L,42910L,42912L,42912L,42914L,42914L,42916L,42916L,
9768642918L,42918L,42920L,42920L,42922L,42923L,42924L,42925L,42926L,42927L,
9768742928L,42929L,42930L,42931L,42932L,42932L,42934L,42934L,42936L,42936L,
9768842938L,42938L,42940L,42940L,42942L,42942L,42944L,42945L,42946L,42946L,
9768942948L,42949L,42950L,42951L,42952L,42953L,42954L,42955L,42956L,42957L,
9769042958L,42959L,42960L,42961L,42962L,42963L,42964L,42965L,42966L,42967L,
9769142968L,42969L,42970L,42971L,42972L,42973L,42974L,42975L,42976L,42977L,
9769242978L,42979L,42980L,42981L,42982L,42983L,42984L,42985L,42986L,42987L,
9769342988L,42989L,42990L,42991L,42992L,42993L,42994L,42995L,42996L,42997L,
9769442998L,42999L,43000L,43001L,43002L,43003L,43004L,43005L,43006L,43007L,
9769543008L,43009L,43010L,43011L,43012L,43013L,43014L,43015L,43016L,43017L,
9769643018L,43019L,43020L,43021L,43022L,43023L,43024L,43025L,43026L,43027L,
9769743028L,43029L,43030L,43031L,43032L,43033L,43034L,43035L,43036L,43037L,
9769843038L,43039L,43040L,43041L,43042L,43043L,43044L,43045L,43046L,43047L,
9769943048L,43049L,43050L,43051L,43052L,43053L,43054L,43055L,43056L,43057L,
9770043058L,43059L,43060L,43061L,43062L,43063L,43064L,43065L,43066L,43067L,
9770143068L,43069L,43070L,43071L,43072L,43073L,43074L,43075L,43076L,43077L,
9770243078L,43079L,43080L,43081L,43082L,43083L,43084L,43085L,43086L,43087L,
9770343088L,43089L,43090L,43091L,43092L,43093L,43094L,43095L,43096L,43097L,
9770443098L,43099L,43100L,43101L,43102L,43103L,43104L,43105L,43106L,43107L,
9770543108L,43109L,43110L,43111L,43112L,43113L,43114L,43115L,43116L,43117L,
9770643118L,43119L,43120L,43121L,43122L,43123L,43124L,43125L,43126L,43127L,
9770743128L,43129L,43130L,43131L,43132L,43133L,43134L,43135L,43136L,43137L,
9770843138L,43139L,43140L,43141L,43142L,43143L,43144L,43145L,43146L,43147L,
9770943148L,43149L,43150L,43151L,43152L,43153L,43154L,43155L,43156L,43157L,
9771043158L,43159L,43160L,43161L,43162L,43163L,43164L,43165L,43166L,43167L,
9771143168L,43169L,43170L,43171L,43172L,43173L,43174L,43175L,43176L,43177L,
9771243178L,43179L,43180L,43181L,43182L,43183L,43184L,43185L,43186L,43187L,
9771343188L,43189L,43190L,43191L,43192L,43193L,43194L,43195L,43196L,43197L,
9771443198L,43199L,43200L,43201L,43202L,43203L,43204L,43205L,43206L,43207L,
9771543208L,43209L,43210L,43211L,43212L,43213L,43214L,43215L,43216L,43217L,
9771643218L,43219L,43220L,43221L,43222L,43223L,43224L,43225L,43226L,43227L,
9771743228L,43229L,43230L,43231L,43232L,43233L,43234L,43235L,43236L,43237L,
9771843238L,43239L,43240L,43241L,43242L,43243L,43244L,43245L,43246L,43247L,
9771943248L,43249L,43250L,43251L,43252L,43253L,43254L,43255L,43256L,43257L,
9772043258L,43259L,43260L,43261L,43262L,43263L,43264L,43265L,43266L,43267L,
9772143268L,43269L,43270L,43271L,43272L,43273L,43274L,43275L,43276L,43277L,
9772243278L,43279L,43280L,43281L,43282L,43283L,43284L,43285L,43286L,43287L,
9772343288L,43289L,43290L,43291L,43292L,43293L,43294L,43295L,43296L,43297L,
9772443298L,43299L,43300L,43301L,43302L,43303L,43304L,43305L,43306L,43307L,
9772543308L,43309L,43310L,43311L,43312L,43313L,43314L,43315L,43316L,43317L,
9772643318L,43319L,43320L,43321L,43322L,43323L,43324L,43325L,43326L,43327L,
9772743328L,43329L,43330L,43331L,43332L,43333L,43334L,43335L,43336L,43337L,
9772843338L,43339L,43340L,43341L,43342L,43343L,43344L,43345L,43346L,43347L,
9772943348L,43349L,43350L,43351L,43352L,43353L,43354L,43355L,43356L,43357L,
9773043358L,43359L,43360L,43361L,43362L,43363L,43364L,43365L,43366L,43367L,
9773143368L,43369L,43370L,43371L,43372L,43373L,43374L,43375L,43376L,43377L,
9773243378L,43379L,43380L,43381L,43382L,43383L,43384L,43385L,43386L,43387L,
9773343388L,43389L,43390L,43391L,43392L,43393L,43394L,43395L,43396L,43397L,
9773443398L,43399L,43400L,43401L,43402L,43403L,43404L,43405L,43406L,43407L,
9773543408L,43409L,43410L,43411L,43412L,43413L,43414L,43415L,43416L,43417L,
9773643418L,43419L,43420L,43421L,43422L,43423L,43424L,43425L,43426L,43427L,
9773743428L,43429L,43430L,43431L,43432L,43433L,43434L,43435L,43436L,43437L,
9773843438L,43439L,43440L,43441L,43442L,43443L,43444L,43445L,43446L,43447L,
9773943448L,43449L,43450L,43451L,43452L,43453L,43454L,43455L,43456L,43457L,
9774043458L,43459L,43460L,43461L,43462L,43463L,43464L,43465L,43466L,43467L,
9774143468L,43469L,43470L,43471L,43472L,43473L,43474L,43475L,43476L,43477L,
9774243478L,43479L,43480L,43481L,43482L,43483L,43484L,43485L,43486L,43487L,
9774343488L,43489L,43490L,43491L,43492L,43493L,43494L,43495L,43496L,43497L,
9774443498L,43499L,43500L,43501L,43502L,43503L,43504L,43505L,43506L,43507L,
9774543508L,43509L,43510L,43511L,43512L,43513L,43514L,43515L,43516L,43517L,
9774643518L,43519L,43520L,43521L,43522L,43523L,43524L,43525L,43526L,43527L,
9774743528L,43529L,43530L,43531L,43532L,43533L,43534L,43535L,43536L,43537L,
9774843538L,43539L,43540L,43541L,43542L,43543L,43544L,43545L,43546L,43547L,
9774943548L,43549L,43550L,43551L,43552L,43553L,43554L,43555L,43556L,43557L,
9775043558L,43559L,43560L,43561L,43562L,43563L,43564L,43565L,43566L,43567L,
9775143568L,43569L,43570L,43571L,43572L,43573L,43574L,43575L,43576L,43577L,
9775243578L,43579L,43580L,43581L,43582L,43583L,43584L,43585L,43586L,43587L,
9775343588L,43589L,43590L,43591L,43592L,43593L,43594L,43595L,43596L,43597L,
9775443598L,43599L,43600L,43601L,43602L,43603L,43604L,43605L,43606L,43607L,
9775543608L,43609L,43610L,43611L,43612L,43613L,43614L,43615L,43616L,43617L,
9775643618L,43619L,43620L,43621L,43622L,43623L,43624L,43625L,43626L,43627L,
9775743628L,43629L,43630L,43631L,43632L,43633L,43634L,43635L,43636L,43637L,
9775843638L,43639L,43640L,43641L,43642L,43643L,43644L,43645L,43646L,43647L,
9775943648L,43649L,43650L,43651L,43652L,43653L,43654L,43655L,43656L,43657L,
9776043658L,43659L,43660L,43661L,43662L,43663L,43664L,43665L,43666L,43667L,
9776143668L,43669L,43670L,43671L,43672L,43673L,43674L,43675L,43676L,43677L,
9776243678L,43679L,43680L,43681L,43682L,43683L,43684L,43685L,43686L,43687L,
9776343688L,43689L,43690L,43691L,43692L,43693L,43694L,43695L,43696L,43697L,
9776443698L,43699L,43700L,43701L,43702L,43703L,43704L,43705L,43706L,43707L,
9776543708L,43709L,43710L,43711L,43712L,43713L,43714L,43715L,43716L,43717L,
9776643718L,43719L,43720L,43721L,43722L,43723L,43724L,43725L,43726L,43727L,
9776743728L,43729L,43730L,43731L,43732L,43733L,43734L,43735L,43736L,43737L,
9776843738L,43739L,43740L,43741L,43742L,43743L,43744L,43745L,43746L,43747L,
9776943748L,43749L,43750L,43751L,43752L,43753L,43754L,43755L,43756L,43757L,
9777043758L,43759L,43760L,43761L,43762L,43763L,43764L,43765L,43766L,43767L,
9777143768L,43769L,43770L,43771L,43772L,43773L,43774L,43775L,43776L,43777L,
9777243778L,43779L,43780L,43781L,43782L,43783L,43784L,43785L,43786L,43787L,
9777343788L,43789L,43790L,43791L,43792L,43793L,43794L,43795L,43796L,43797L,
9777443798L,43799L,43800L,43801L,43802L,43803L,43804L,43805L,43806L,43807L,
9777543808L,43809L,43810L,43811L,43812L,43813L,43814L,43815L,43816L,43817L,
9777643818L,43819L,43820L,43821L,43822L,43823L,43824L,43825L,43826L,43827L,
9777743828L,43829L,43830L,43831L,43832L,43833L,43834L,43835L,43836L,43837L,
9777843838L,43839L,43840L,43841L,43842L,43843L,43844L,43845L,43846L,43847L,
9777943848L,43849L,43850L,43851L,43852L,43853L,43854L,43855L,43856L,43857L,
9778043858L,42931L,43860L,43861L,43862L,43863L,43864L,43865L,43866L,43867L,
9778143868L,43869L,43870L,43871L,43872L,43873L,43874L,43875L,43876L,43877L,
9778243878L,43879L,43880L,43881L,43882L,43883L,43884L,43885L,43886L,43887L,5024,
977835025,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,
977845040,5041,5042,5043,5044,5045,5046,5047,5048,5049,5050,5051,5052,5053,5054,
977855055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,
977865070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082,5083,5084,
977875085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,
977885100,5101,5102,5103,43968L,43969L,43970L,43971L,43972L,43973L,43974L,
9778943975L,43976L,43977L,43978L,43979L,43980L,43981L,43982L,43983L,43984L,
9779043985L,43986L,43987L,43988L,43989L,43990L,43991L,43992L,43993L,43994L,
9779143995L,43996L,43997L,43998L,43999L,44000L,44001L,44002L,44003L,44004L,
9779244005L,44006L,44007L,44008L,44009L,44010L,44011L,44012L,44013L,44014L,
9779344015L,44016L,44017L,44018L,44019L,44020L,44021L,44022L,44023L,44024L,
9779444025L,44026L,44027L,44028L,44029L,44030L,44031L,44032L,44033L,44034L,
9779544035L,44036L,44037L,44038L,44039L,44040L,44041L,44042L,44043L,44044L,
9779644045L,44046L,44047L,44048L,44049L,44050L,44051L,44052L,44053L,44054L,
9779744055L,44056L,44057L,44058L,44059L,44060L,44061L,44062L,44063L,44064L,
9779844065L,44066L,44067L,44068L,44069L,44070L,44071L,44072L,44073L,44074L,
9779944075L,44076L,44077L,44078L,44079L,44080L,44081L,44082L,44083L,44084L,
9780044085L,44086L,44087L,44088L,44089L,44090L,44091L,44092L,44093L,44094L,
9780144095L,44096L,44097L,44098L,44099L,44100L,44101L,44102L,44103L,44104L,
9780244105L,44106L,44107L,44108L,44109L,44110L,44111L,44112L,44113L,44114L,
9780344115L,44116L,44117L,44118L,44119L,44120L,44121L,44122L,44123L,44124L,
9780444125L,44126L,44127L,44128L,44129L,44130L,44131L,44132L,44133L,44134L,
9780544135L,44136L,44137L,44138L,44139L,44140L,44141L,44142L,44143L,44144L,
9780644145L,44146L,44147L,44148L,44149L,44150L,44151L,44152L,44153L,44154L,
9780744155L,44156L,44157L,44158L,44159L,44160L,44161L,44162L,44163L,44164L,
9780844165L,44166L,44167L,44168L,44169L,44170L,44171L,44172L,44173L,44174L,
9780944175L,44176L,44177L,44178L,44179L,44180L,44181L,44182L,44183L,44184L,
9781044185L,44186L,44187L,44188L,44189L,44190L,44191L,44192L,44193L,44194L,
9781144195L,44196L,44197L,44198L,44199L,44200L,44201L,44202L,44203L,44204L,
9781244205L,44206L,44207L,44208L,44209L,44210L,44211L,44212L,44213L,44214L,
9781344215L,44216L,44217L,44218L,44219L,44220L,44221L,44222L,44223L,44224L,
9781444225L,44226L,44227L,44228L,44229L,44230L,44231L,44232L,44233L,44234L,
9781544235L,44236L,44237L,44238L,44239L,44240L,44241L,44242L,44243L,44244L,
9781644245L,44246L,44247L,44248L,44249L,44250L,44251L,44252L,44253L,44254L,
9781744255L,44256L,44257L,44258L,44259L,44260L,44261L,44262L,44263L,44264L,
9781844265L,44266L,44267L,44268L,44269L,44270L,44271L,44272L,44273L,44274L,
9781944275L,44276L,44277L,44278L,44279L,44280L,44281L,44282L,44283L,44284L,
9782044285L,44286L,44287L,44288L,44289L,44290L,44291L,44292L,44293L,44294L,
9782144295L,44296L,44297L,44298L,44299L,44300L,44301L,44302L,44303L,44304L,
9782244305L,44306L,44307L,44308L,44309L,44310L,44311L,44312L,44313L,44314L,
9782344315L,44316L,44317L,44318L,44319L,44320L,44321L,44322L,44323L,44324L,
9782444325L,44326L,44327L,44328L,44329L,44330L,44331L,44332L,44333L,44334L,
9782544335L,44336L,44337L,44338L,44339L,44340L,44341L,44342L,44343L,44344L,
9782644345L,44346L,44347L,44348L,44349L,44350L,44351L,44352L,44353L,44354L,
9782744355L,44356L,44357L,44358L,44359L,44360L,44361L,44362L,44363L,44364L,
9782844365L,44366L,44367L,44368L,44369L,44370L,44371L,44372L,44373L,44374L,
9782944375L,44376L,44377L,44378L,44379L,44380L,44381L,44382L,44383L,44384L,
9783044385L,44386L,44387L,44388L,44389L,44390L,44391L,44392L,44393L,44394L,
9783144395L,44396L,44397L,44398L,44399L,44400L,44401L,44402L,44403L,44404L,
9783244405L,44406L,44407L,44408L,44409L,44410L,44411L,44412L,44413L,44414L,
9783344415L,44416L,44417L,44418L,44419L,44420L,44421L,44422L,44423L,44424L,
9783444425L,44426L,44427L,44428L,44429L,44430L,44431L,44432L,44433L,44434L,
9783544435L,44436L,44437L,44438L,44439L,44440L,44441L,44442L,44443L,44444L,
9783644445L,44446L,44447L,44448L,44449L,44450L,44451L,44452L,44453L,44454L,
9783744455L,44456L,44457L,44458L,44459L,44460L,44461L,44462L,44463L,44464L,
9783844465L,44466L,44467L,44468L,44469L,44470L,44471L,44472L,44473L,44474L,
9783944475L,44476L,44477L,44478L,44479L,44480L,44481L,44482L,44483L,44484L,
9784044485L,44486L,44487L,44488L,44489L,44490L,44491L,44492L,44493L,44494L,
9784144495L,44496L,44497L,44498L,44499L,44500L,44501L,44502L,44503L,44504L,
9784244505L,44506L,44507L,44508L,44509L,44510L,44511L,44512L,44513L,44514L,
9784344515L,44516L,44517L,44518L,44519L,44520L,44521L,44522L,44523L,44524L,
9784444525L,44526L,44527L,44528L,44529L,44530L,44531L,44532L,44533L,44534L,
9784544535L,44536L,44537L,44538L,44539L,44540L,44541L,44542L,44543L,44544L,
9784644545L,44546L,44547L,44548L,44549L,44550L,44551L,44552L,44553L,44554L,
9784744555L,44556L,44557L,44558L,44559L,44560L,44561L,44562L,44563L,44564L,
9784844565L,44566L,44567L,44568L,44569L,44570L,44571L,44572L,44573L,44574L,
9784944575L,44576L,44577L,44578L,44579L,44580L,44581L,44582L,44583L,44584L,
9785044585L,44586L,44587L,44588L,44589L,44590L,44591L,44592L,44593L,44594L,
9785144595L,44596L,44597L,44598L,44599L,44600L,44601L,44602L,44603L,44604L,
9785244605L,44606L,44607L,44608L,44609L,44610L,44611L,44612L,44613L,44614L,
9785344615L,44616L,44617L,44618L,44619L,44620L,44621L,44622L,44623L,44624L,
9785444625L,44626L,44627L,44628L,44629L,44630L,44631L,44632L,44633L,44634L,
9785544635L,44636L,44637L,44638L,44639L,44640L,44641L,44642L,44643L,44644L,
9785644645L,44646L,44647L,44648L,44649L,44650L,44651L,44652L,44653L,44654L,
9785744655L,44656L,44657L,44658L,44659L,44660L,44661L,44662L,44663L,44664L,
9785844665L,44666L,44667L,44668L,44669L,44670L,44671L,44672L,44673L,44674L,
9785944675L,44676L,44677L,44678L,44679L,44680L,44681L,44682L,44683L,44684L,
9786044685L,44686L,44687L,44688L,44689L,44690L,44691L,44692L,44693L,44694L,
9786144695L,44696L,44697L,44698L,44699L,44700L,44701L,44702L,44703L,44704L,
9786244705L,44706L,44707L,44708L,44709L,44710L,44711L,44712L,44713L,44714L,
9786344715L,44716L,44717L,44718L,44719L,44720L,44721L,44722L,44723L,44724L,
9786444725L,44726L,44727L,44728L,44729L,44730L,44731L,44732L,44733L,44734L,
9786544735L,44736L,44737L,44738L,44739L,44740L,44741L,44742L,44743L,44744L,
9786644745L,44746L,44747L,44748L,44749L,44750L,44751L,44752L,44753L,44754L,
9786744755L,44756L,44757L,44758L,44759L,44760L,44761L,44762L,44763L,44764L,
9786844765L,44766L,44767L,44768L,44769L,44770L,44771L,44772L,44773L,44774L,
9786944775L,44776L,44777L,44778L,44779L,44780L,44781L,44782L,44783L,44784L,
9787044785L,44786L,44787L,44788L,44789L,44790L,44791L,44792L,44793L,44794L,
9787144795L,44796L,44797L,44798L,44799L,44800L,44801L,44802L,44803L,44804L,
9787244805L,44806L,44807L,44808L,44809L,44810L,44811L,44812L,44813L,44814L,
9787344815L,44816L,44817L,44818L,44819L,44820L,44821L,44822L,44823L,44824L,
9787444825L,44826L,44827L,44828L,44829L,44830L,44831L,44832L,44833L,44834L,
9787544835L,44836L,44837L,44838L,44839L,44840L,44841L,44842L,44843L,44844L,
9787644845L,44846L,44847L,44848L,44849L,44850L,44851L,44852L,44853L,44854L,
9787744855L,44856L,44857L,44858L,44859L,44860L,44861L,44862L,44863L,44864L,
9787844865L,44866L,44867L,44868L,44869L,44870L,44871L,44872L,44873L,44874L,
9787944875L,44876L,44877L,44878L,44879L,44880L,44881L,44882L,44883L,44884L,
9788044885L,44886L,44887L,44888L,44889L,44890L,44891L,44892L,44893L,44894L,
9788144895L,44896L,44897L,44898L,44899L,44900L,44901L,44902L,44903L,44904L,
9788244905L,44906L,44907L,44908L,44909L,44910L,44911L,44912L,44913L,44914L,
9788344915L,44916L,44917L,44918L,44919L,44920L,44921L,44922L,44923L,44924L,
9788444925L,44926L,44927L,44928L,44929L,44930L,44931L,44932L,44933L,44934L,
9788544935L,44936L,44937L,44938L,44939L,44940L,44941L,44942L,44943L,44944L,
9788644945L,44946L,44947L,44948L,44949L,44950L,44951L,44952L,44953L,44954L,
9788744955L,44956L,44957L,44958L,44959L,44960L,44961L,44962L,44963L,44964L,
9788844965L,44966L,44967L,44968L,44969L,44970L,44971L,44972L,44973L,44974L,
9788944975L,44976L,44977L,44978L,44979L,44980L,44981L,44982L,44983L,44984L,
9789044985L,44986L,44987L,44988L,44989L,44990L,44991L,44992L,44993L,44994L,
9789144995L,44996L,44997L,44998L,44999L,45000L,45001L,45002L,45003L,45004L,
9789245005L,45006L,45007L,45008L,45009L,45010L,45011L,45012L,45013L,45014L,
9789345015L,45016L,45017L,45018L,45019L,45020L,45021L,45022L,45023L,45024L,
9789445025L,45026L,45027L,45028L,45029L,45030L,45031L,45032L,45033L,45034L,
9789545035L,45036L,45037L,45038L,45039L,45040L,45041L,45042L,45043L,45044L,
9789645045L,45046L,45047L,45048L,45049L,45050L,45051L,45052L,45053L,45054L,
9789745055L,45056L,45057L,45058L,45059L,45060L,45061L,45062L,45063L,45064L,
9789845065L,45066L,45067L,45068L,45069L,45070L,45071L,45072L,45073L,45074L,
9789945075L,45076L,45077L,45078L,45079L,45080L,45081L,45082L,45083L,45084L,
9790045085L,45086L,45087L,45088L,45089L,45090L,45091L,45092L,45093L,45094L,
9790145095L,45096L,45097L,45098L,45099L,45100L,45101L,45102L,45103L,45104L,
9790245105L,45106L,45107L,45108L,45109L,45110L,45111L,45112L,45113L,45114L,
9790345115L,45116L,45117L,45118L,45119L,45120L,45121L,45122L,45123L,45124L,
9790445125L,45126L,45127L,45128L,45129L,45130L,45131L,45132L,45133L,45134L,
9790545135L,45136L,45137L,45138L,45139L,45140L,45141L,45142L,45143L,45144L,
9790645145L,45146L,45147L,45148L,45149L,45150L,45151L,45152L,45153L,45154L,
9790745155L,45156L,45157L,45158L,45159L,45160L,45161L,45162L,45163L,45164L,
9790845165L,45166L,45167L,45168L,45169L,45170L,45171L,45172L,45173L,45174L,
9790945175L,45176L,45177L,45178L,45179L,45180L,45181L,45182L,45183L,45184L,
9791045185L,45186L,45187L,45188L,45189L,45190L,45191L,45192L,45193L,45194L,
9791145195L,45196L,45197L,45198L,45199L,45200L,45201L,45202L,45203L,45204L,
9791245205L,45206L,45207L,45208L,45209L,45210L,45211L,45212L,45213L,45214L,
9791345215L,45216L,45217L,45218L,45219L,45220L,45221L,45222L,45223L,45224L,
9791445225L,45226L,45227L,45228L,45229L,45230L,45231L,45232L,45233L,45234L,
9791545235L,45236L,45237L,45238L,45239L,45240L,45241L,45242L,45243L,45244L,
9791645245L,45246L,45247L,45248L,45249L,45250L,45251L,45252L,45253L,45254L,
9791745255L,45256L,45257L,45258L,45259L,45260L,45261L,45262L,45263L,45264L,
9791845265L,45266L,45267L,45268L,45269L,45270L,45271L,45272L,45273L,45274L,
9791945275L,45276L,45277L,45278L,45279L,45280L,45281L,45282L,45283L,45284L,
9792045285L,45286L,45287L,45288L,45289L,45290L,45291L,45292L,45293L,45294L,
9792145295L,45296L,45297L,45298L,45299L,45300L,45301L,45302L,45303L,45304L,
9792245305L,45306L,45307L,45308L,45309L,45310L,45311L,45312L,45313L,45314L,
9792345315L,45316L,45317L,45318L,45319L,45320L,45321L,45322L,45323L,45324L,
9792445325L,45326L,45327L,45328L,45329L,45330L,45331L,45332L,45333L,45334L,
9792545335L,45336L,45337L,45338L,45339L,45340L,45341L,45342L,45343L,45344L,
9792645345L,45346L,45347L,45348L,45349L,45350L,45351L,45352L,45353L,45354L,
9792745355L,45356L,45357L,45358L,45359L,45360L,45361L,45362L,45363L,45364L,
9792845365L,45366L,45367L,45368L,45369L,45370L,45371L,45372L,45373L,45374L,
9792945375L,45376L,45377L,45378L,45379L,45380L,45381L,45382L,45383L,45384L,
9793045385L,45386L,45387L,45388L,45389L,45390L,45391L,45392L,45393L,45394L,
9793145395L,45396L,45397L,45398L,45399L,45400L,45401L,45402L,45403L,45404L,
9793245405L,45406L,45407L,45408L,45409L,45410L,45411L,45412L,45413L,45414L,
9793345415L,45416L,45417L,45418L,45419L,45420L,45421L,45422L,45423L,45424L,
9793445425L,45426L,45427L,45428L,45429L,45430L,45431L,45432L,45433L,45434L,
9793545435L,45436L,45437L,45438L,45439L,45440L,45441L,45442L,45443L,45444L,
9793645445L,45446L,45447L,45448L,45449L,45450L,45451L,45452L,45453L,45454L,
9793745455L,45456L,45457L,45458L,45459L,45460L,45461L,45462L,45463L,45464L,
9793845465L,45466L,45467L,45468L,45469L,45470L,45471L,45472L,45473L,45474L,
9793945475L,45476L,45477L,45478L,45479L,45480L,45481L,45482L,45483L,45484L,
9794045485L,45486L,45487L,45488L,45489L,45490L,45491L,45492L,45493L,45494L,
9794145495L,45496L,45497L,45498L,45499L,45500L,45501L,45502L,45503L,45504L,
9794245505L,45506L,45507L,45508L,45509L,45510L,45511L,45512L,45513L,45514L,
9794345515L,45516L,45517L,45518L,45519L,45520L,45521L,45522L,45523L,45524L,
9794445525L,45526L,45527L,45528L,45529L,45530L,45531L,45532L,45533L,45534L,
9794545535L,45536L,45537L,45538L,45539L,45540L,45541L,45542L,45543L,45544L,
9794645545L,45546L,45547L,45548L,45549L,45550L,45551L,45552L,45553L,45554L,
9794745555L,45556L,45557L,45558L,45559L,45560L,45561L,45562L,45563L,45564L,
9794845565L,45566L,45567L,45568L,45569L,45570L,45571L,45572L,45573L,45574L,
9794945575L,45576L,45577L,45578L,45579L,45580L,45581L,45582L,45583L,45584L,
9795045585L,45586L,45587L,45588L,45589L,45590L,45591L,45592L,45593L,45594L,
9795145595L,45596L,45597L,45598L,45599L,45600L,45601L,45602L,45603L,45604L,
9795245605L,45606L,45607L,45608L,45609L,45610L,45611L,45612L,45613L,45614L,
9795345615L,45616L,45617L,45618L,45619L,45620L,45621L,45622L,45623L,45624L,
9795445625L,45626L,45627L,45628L,45629L,45630L,45631L,45632L,45633L,45634L,
9795545635L,45636L,45637L,45638L,45639L,45640L,45641L,45642L,45643L,45644L,
9795645645L,45646L,45647L,45648L,45649L,45650L,45651L,45652L,45653L,45654L,
9795745655L,45656L,45657L,45658L,45659L,45660L,45661L,45662L,45663L,45664L,
9795845665L,45666L,45667L,45668L,45669L,45670L,45671L,45672L,45673L,45674L,
9795945675L,45676L,45677L,45678L,45679L,45680L,45681L,45682L,45683L,45684L,
9796045685L,45686L,45687L,45688L,45689L,45690L,45691L,45692L,45693L,45694L,
9796145695L,45696L,45697L,45698L,45699L,45700L,45701L,45702L,45703L,45704L,
9796245705L,45706L,45707L,45708L,45709L,45710L,45711L,45712L,45713L,45714L,
9796345715L,45716L,45717L,45718L,45719L,45720L,45721L,45722L,45723L,45724L,
9796445725L,45726L,45727L,45728L,45729L,45730L,45731L,45732L,45733L,45734L,
9796545735L,45736L,45737L,45738L,45739L,45740L,45741L,45742L,45743L,45744L,
9796645745L,45746L,45747L,45748L,45749L,45750L,45751L,45752L,45753L,45754L,
9796745755L,45756L,45757L,45758L,45759L,45760L,45761L,45762L,45763L,45764L,
9796845765L,45766L,45767L,45768L,45769L,45770L,45771L,45772L,45773L,45774L,
9796945775L,45776L,45777L,45778L,45779L,45780L,45781L,45782L,45783L,45784L,
9797045785L,45786L,45787L,45788L,45789L,45790L,45791L,45792L,45793L,45794L,
9797145795L,45796L,45797L,45798L,45799L,45800L,45801L,45802L,45803L,45804L,
9797245805L,45806L,45807L,45808L,45809L,45810L,45811L,45812L,45813L,45814L,
9797345815L,45816L,45817L,45818L,45819L,45820L,45821L,45822L,45823L,45824L,
9797445825L,45826L,45827L,45828L,45829L,45830L,45831L,45832L,45833L,45834L,
9797545835L,45836L,45837L,45838L,45839L,45840L,45841L,45842L,45843L,45844L,
9797645845L,45846L,45847L,45848L,45849L,45850L,45851L,45852L,45853L,45854L,
9797745855L,45856L,45857L,45858L,45859L,45860L,45861L,45862L,45863L,45864L,
9797845865L,45866L,45867L,45868L,45869L,45870L,45871L,45872L,45873L,45874L,
9797945875L,45876L,45877L,45878L,45879L,45880L,45881L,45882L,45883L,45884L,
9798045885L,45886L,45887L,45888L,45889L,45890L,45891L,45892L,45893L,45894L,
9798145895L,45896L,45897L,45898L,45899L,45900L,45901L,45902L,45903L,45904L,
9798245905L,45906L,45907L,45908L,45909L,45910L,45911L,45912L,45913L,45914L,
9798345915L,45916L,45917L,45918L,45919L,45920L,45921L,45922L,45923L,45924L,
9798445925L,45926L,45927L,45928L,45929L,45930L,45931L,45932L,45933L,45934L,
9798545935L,45936L,45937L,45938L,45939L,45940L,45941L,45942L,45943L,45944L,
9798645945L,45946L,45947L,45948L,45949L,45950L,45951L,45952L,45953L,45954L,
9798745955L,45956L,45957L,45958L,45959L,45960L,45961L,45962L,45963L,45964L,
9798845965L,45966L,45967L,45968L,45969L,45970L,45971L,45972L,45973L,45974L,
9798945975L,45976L,45977L,45978L,45979L,45980L,45981L,45982L,45983L,45984L,
9799045985L,45986L,45987L,45988L,45989L,45990L,45991L,45992L,45993L,45994L,
9799145995L,45996L,45997L,45998L,45999L,46000L,46001L,46002L,46003L,46004L,
9799246005L,46006L,46007L,46008L,46009L,46010L,46011L,46012L,46013L,46014L,
9799346015L,46016L,46017L,46018L,46019L,46020L,46021L,46022L,46023L,46024L,
9799446025L,46026L,46027L,46028L,46029L,46030L,46031L,46032L,46033L,46034L,
9799546035L,46036L,46037L,46038L,46039L,46040L,46041L,46042L,46043L,46044L,
9799646045L,46046L,46047L,46048L,46049L,46050L,46051L,46052L,46053L,46054L,
9799746055L,46056L,46057L,46058L,46059L,46060L,46061L,46062L,46063L,46064L,
9799846065L,46066L,46067L,46068L,46069L,46070L,46071L,46072L,46073L,46074L,
9799946075L,46076L,46077L,46078L,46079L,46080L,46081L,46082L,46083L,46084L,
9800046085L,46086L,46087L,46088L,46089L,46090L,46091L,46092L,46093L,46094L,
9800146095L,46096L,46097L,46098L,46099L,46100L,46101L,46102L,46103L,46104L,
9800246105L,46106L,46107L,46108L,46109L,46110L,46111L,46112L,46113L,46114L,
9800346115L,46116L,46117L,46118L,46119L,46120L,46121L,46122L,46123L,46124L,
9800446125L,46126L,46127L,46128L,46129L,46130L,46131L,46132L,46133L,46134L,
9800546135L,46136L,46137L,46138L,46139L,46140L,46141L,46142L,46143L,46144L,
9800646145L,46146L,46147L,46148L,46149L,46150L,46151L,46152L,46153L,46154L,
9800746155L,46156L,46157L,46158L,46159L,46160L,46161L,46162L,46163L,46164L,
9800846165L,46166L,46167L,46168L,46169L,46170L,46171L,46172L,46173L,46174L,
9800946175L,46176L,46177L,46178L,46179L,46180L,46181L,46182L,46183L,46184L,
9801046185L,46186L,46187L,46188L,46189L,46190L,46191L,46192L,46193L,46194L,
9801146195L,46196L,46197L,46198L,46199L,46200L,46201L,46202L,46203L,46204L,
9801246205L,46206L,46207L,46208L,46209L,46210L,46211L,46212L,46213L,46214L,
9801346215L,46216L,46217L,46218L,46219L,46220L,46221L,46222L,46223L,46224L,
9801446225L,46226L,46227L,46228L,46229L,46230L,46231L,46232L,46233L,46234L,
9801546235L,46236L,46237L,46238L,46239L,46240L,46241L,46242L,46243L,46244L,
9801646245L,46246L,46247L,46248L,46249L,46250L,46251L,46252L,46253L,46254L,
9801746255L,46256L,46257L,46258L,46259L,46260L,46261L,46262L,46263L,46264L,
9801846265L,46266L,46267L,46268L,46269L,46270L,46271L,46272L,46273L,46274L,
9801946275L,46276L,46277L,46278L,46279L,46280L,46281L,46282L,46283L,46284L,
9802046285L,46286L,46287L,46288L,46289L,46290L,46291L,46292L,46293L,46294L,
9802146295L,46296L,46297L,46298L,46299L,46300L,46301L,46302L,46303L,46304L,
9802246305L,46306L,46307L,46308L,46309L,46310L,46311L,46312L,46313L,46314L,
9802346315L,46316L,46317L,46318L,46319L,46320L,46321L,46322L,46323L,46324L,
9802446325L,46326L,46327L,46328L,46329L,46330L,46331L,46332L,46333L,46334L,
9802546335L,46336L,46337L,46338L,46339L,46340L,46341L,46342L,46343L,46344L,
9802646345L,46346L,46347L,46348L,46349L,46350L,46351L,46352L,46353L,46354L,
9802746355L,46356L,46357L,46358L,46359L,46360L,46361L,46362L,46363L,46364L,
9802846365L,46366L,46367L,46368L,46369L,46370L,46371L,46372L,46373L,46374L,
9802946375L,46376L,46377L,46378L,46379L,46380L,46381L,46382L,46383L,46384L,
9803046385L,46386L,46387L,46388L,46389L,46390L,46391L,46392L,46393L,46394L,
9803146395L,46396L,46397L,46398L,46399L,46400L,46401L,46402L,46403L,46404L,
9803246405L,46406L,46407L,46408L,46409L,46410L,46411L,46412L,46413L,46414L,
9803346415L,46416L,46417L,46418L,46419L,46420L,46421L,46422L,46423L,46424L,
9803446425L,46426L,46427L,46428L,46429L,46430L,46431L,46432L,46433L,46434L,
9803546435L,46436L,46437L,46438L,46439L,46440L,46441L,46442L,46443L,46444L,
9803646445L,46446L,46447L,46448L,46449L,46450L,46451L,46452L,46453L,46454L,
9803746455L,46456L,46457L,46458L,46459L,46460L,46461L,46462L,46463L,46464L,
9803846465L,46466L,46467L,46468L,46469L,46470L,46471L,46472L,46473L,46474L,
9803946475L,46476L,46477L,46478L,46479L,46480L,46481L,46482L,46483L,46484L,
9804046485L,46486L,46487L,46488L,46489L,46490L,46491L,46492L,46493L,46494L,
9804146495L,46496L,46497L,46498L,46499L,46500L,46501L,46502L,46503L,46504L,
9804246505L,46506L,46507L,46508L,46509L,46510L,46511L,46512L,46513L,46514L,
9804346515L,46516L,46517L,46518L,46519L,46520L,46521L,46522L,46523L,46524L,
9804446525L,46526L,46527L,46528L,46529L,46530L,46531L,46532L,46533L,46534L,
9804546535L,46536L,46537L,46538L,46539L,46540L,46541L,46542L,46543L,46544L,
9804646545L,46546L,46547L,46548L,46549L,46550L,46551L,46552L,46553L,46554L,
9804746555L,46556L,46557L,46558L,46559L,46560L,46561L,46562L,46563L,46564L,
9804846565L,46566L,46567L,46568L,46569L,46570L,46571L,46572L,46573L,46574L,
9804946575L,46576L,46577L,46578L,46579L,46580L,46581L,46582L,46583L,46584L,
9805046585L,46586L,46587L,46588L,46589L,46590L,46591L,46592L,46593L,46594L,
9805146595L,46596L,46597L,46598L,46599L,46600L,46601L,46602L,46603L,46604L,
9805246605L,46606L,46607L,46608L,46609L,46610L,46611L,46612L,46613L,46614L,
9805346615L,46616L,46617L,46618L,46619L,46620L,46621L,46622L,46623L,46624L,
9805446625L,46626L,46627L,46628L,46629L,46630L,46631L,46632L,46633L,46634L,
9805546635L,46636L,46637L,46638L,46639L,46640L,46641L,46642L,46643L,46644L,
9805646645L,46646L,46647L,46648L,46649L,46650L,46651L,46652L,46653L,46654L,
9805746655L,46656L,46657L,46658L,46659L,46660L,46661L,46662L,46663L,46664L,
9805846665L,46666L,46667L,46668L,46669L,46670L,46671L,46672L,46673L,46674L,
9805946675L,46676L,46677L,46678L,46679L,46680L,46681L,46682L,46683L,46684L,
9806046685L,46686L,46687L,46688L,46689L,46690L,46691L,46692L,46693L,46694L,
9806146695L,46696L,46697L,46698L,46699L,46700L,46701L,46702L,46703L,46704L,
9806246705L,46706L,46707L,46708L,46709L,46710L,46711L,46712L,46713L,46714L,
9806346715L,46716L,46717L,46718L,46719L,46720L,46721L,46722L,46723L,46724L,
9806446725L,46726L,46727L,46728L,46729L,46730L,46731L,46732L,46733L,46734L,
9806546735L,46736L,46737L,46738L,46739L,46740L,46741L,46742L,46743L,46744L,
9806646745L,46746L,46747L,46748L,46749L,46750L,46751L,46752L,46753L,46754L,
9806746755L,46756L,46757L,46758L,46759L,46760L,46761L,46762L,46763L,46764L,
9806846765L,46766L,46767L,46768L,46769L,46770L,46771L,46772L,46773L,46774L,
9806946775L,46776L,46777L,46778L,46779L,46780L,46781L,46782L,46783L,46784L,
9807046785L,46786L,46787L,46788L,46789L,46790L,46791L,46792L,46793L,46794L,
9807146795L,46796L,46797L,46798L,46799L,46800L,46801L,46802L,46803L,46804L,
9807246805L,46806L,46807L,46808L,46809L,46810L,46811L,46812L,46813L,46814L,
9807346815L,46816L,46817L,46818L,46819L,46820L,46821L,46822L,46823L,46824L,
9807446825L,46826L,46827L,46828L,46829L,46830L,46831L,46832L,46833L,46834L,
9807546835L,46836L,46837L,46838L,46839L,46840L,46841L,46842L,46843L,46844L,
9807646845L,46846L,46847L,46848L,46849L,46850L,46851L,46852L,46853L,46854L,
9807746855L,46856L,46857L,46858L,46859L,46860L,46861L,46862L,46863L,46864L,
9807846865L,46866L,46867L,46868L,46869L,46870L,46871L,46872L,46873L,46874L,
9807946875L,46876L,46877L,46878L,46879L,46880L,46881L,46882L,46883L,46884L,
9808046885L,46886L,46887L,46888L,46889L,46890L,46891L,46892L,46893L,46894L,
9808146895L,46896L,46897L,46898L,46899L,46900L,46901L,46902L,46903L,46904L,
9808246905L,46906L,46907L,46908L,46909L,46910L,46911L,46912L,46913L,46914L,
9808346915L,46916L,46917L,46918L,46919L,46920L,46921L,46922L,46923L,46924L,
9808446925L,46926L,46927L,46928L,46929L,46930L,46931L,46932L,46933L,46934L,
9808546935L,46936L,46937L,46938L,46939L,46940L,46941L,46942L,46943L,46944L,
9808646945L,46946L,46947L,46948L,46949L,46950L,46951L,46952L,46953L,46954L,
9808746955L,46956L,46957L,46958L,46959L,46960L,46961L,46962L,46963L,46964L,
9808846965L,46966L,46967L,46968L,46969L,46970L,46971L,46972L,46973L,46974L,
9808946975L,46976L,46977L,46978L,46979L,46980L,46981L,46982L,46983L,46984L,
9809046985L,46986L,46987L,46988L,46989L,46990L,46991L,46992L,46993L,46994L,
9809146995L,46996L,46997L,46998L,46999L,47000L,47001L,47002L,47003L,47004L,
9809247005L,47006L,47007L,47008L,47009L,47010L,47011L,47012L,47013L,47014L,
9809347015L,47016L,47017L,47018L,47019L,47020L,47021L,47022L,47023L,47024L,
9809447025L,47026L,47027L,47028L,47029L,47030L,47031L,47032L,47033L,47034L,
9809547035L,47036L,47037L,47038L,47039L,47040L,47041L,47042L,47043L,47044L,
9809647045L,47046L,47047L,47048L,47049L,47050L,47051L,47052L,47053L,47054L,
9809747055L,47056L,47057L,47058L,47059L,47060L,47061L,47062L,47063L,47064L,
9809847065L,47066L,47067L,47068L,47069L,47070L,47071L,47072L,47073L,47074L,
9809947075L,47076L,47077L,47078L,47079L,47080L,47081L,47082L,47083L,47084L,
9810047085L,47086L,47087L,47088L,47089L,47090L,47091L,47092L,47093L,47094L,
9810147095L,47096L,47097L,47098L,47099L,47100L,47101L,47102L,47103L,47104L,
9810247105L,47106L,47107L,47108L,47109L,47110L,47111L,47112L,47113L,47114L,
9810347115L,47116L,47117L,47118L,47119L,47120L,47121L,47122L,47123L,47124L,
9810447125L,47126L,47127L,47128L,47129L,47130L,47131L,47132L,47133L,47134L,
9810547135L,47136L,47137L,47138L,47139L,47140L,47141L,47142L,47143L,47144L,
9810647145L,47146L,47147L,47148L,47149L,47150L,47151L,47152L,47153L,47154L,
9810747155L,47156L,47157L,47158L,47159L,47160L,47161L,47162L,47163L,47164L,
9810847165L,47166L,47167L,47168L,47169L,47170L,47171L,47172L,47173L,47174L,
9810947175L,47176L,47177L,47178L,47179L,47180L,47181L,47182L,47183L,47184L,
9811047185L,47186L,47187L,47188L,47189L,47190L,47191L,47192L,47193L,47194L,
9811147195L,47196L,47197L,47198L,47199L,47200L,47201L,47202L,47203L,47204L,
9811247205L,47206L,47207L,47208L,47209L,47210L,47211L,47212L,47213L,47214L,
9811347215L,47216L,47217L,47218L,47219L,47220L,47221L,47222L,47223L,47224L,
9811447225L,47226L,47227L,47228L,47229L,47230L,47231L,47232L,47233L,47234L,
9811547235L,47236L,47237L,47238L,47239L,47240L,47241L,47242L,47243L,47244L,
9811647245L,47246L,47247L,47248L,47249L,47250L,47251L,47252L,47253L,47254L,
9811747255L,47256L,47257L,47258L,47259L,47260L,47261L,47262L,47263L,47264L,
9811847265L,47266L,47267L,47268L,47269L,47270L,47271L,47272L,47273L,47274L,
9811947275L,47276L,47277L,47278L,47279L,47280L,47281L,47282L,47283L,47284L,
9812047285L,47286L,47287L,47288L,47289L,47290L,47291L,47292L,47293L,47294L,
9812147295L,47296L,47297L,47298L,47299L,47300L,47301L,47302L,47303L,47304L,
9812247305L,47306L,47307L,47308L,47309L,47310L,47311L,47312L,47313L,47314L,
9812347315L,47316L,47317L,47318L,47319L,47320L,47321L,47322L,47323L,47324L,
9812447325L,47326L,47327L,47328L,47329L,47330L,47331L,47332L,47333L,47334L,
9812547335L,47336L,47337L,47338L,47339L,47340L,47341L,47342L,47343L,47344L,
9812647345L,47346L,47347L,47348L,47349L,47350L,47351L,47352L,47353L,47354L,
9812747355L,47356L,47357L,47358L,47359L,47360L,47361L,47362L,47363L,47364L,
9812847365L,47366L,47367L,47368L,47369L,47370L,47371L,47372L,47373L,47374L,
9812947375L,47376L,47377L,47378L,47379L,47380L,47381L,47382L,47383L,47384L,
9813047385L,47386L,47387L,47388L,47389L,47390L,47391L,47392L,47393L,47394L,
9813147395L,47396L,47397L,47398L,47399L,47400L,47401L,47402L,47403L,47404L,
9813247405L,47406L,47407L,47408L,47409L,47410L,47411L,47412L,47413L,47414L,
9813347415L,47416L,47417L,47418L,47419L,47420L,47421L,47422L,47423L,47424L,
9813447425L,47426L,47427L,47428L,47429L,47430L,47431L,47432L,47433L,47434L,
9813547435L,47436L,47437L,47438L,47439L,47440L,47441L,47442L,47443L,47444L,
9813647445L,47446L,47447L,47448L,47449L,47450L,47451L,47452L,47453L,47454L,
9813747455L,47456L,47457L,47458L,47459L,47460L,47461L,47462L,47463L,47464L,
9813847465L,47466L,47467L,47468L,47469L,47470L,47471L,47472L,47473L,47474L,
9813947475L,47476L,47477L,47478L,47479L,47480L,47481L,47482L,47483L,47484L,
9814047485L,47486L,47487L,47488L,47489L,47490L,47491L,47492L,47493L,47494L,
9814147495L,47496L,47497L,47498L,47499L,47500L,47501L,47502L,47503L,47504L,
9814247505L,47506L,47507L,47508L,47509L,47510L,47511L,47512L,47513L,47514L,
9814347515L,47516L,47517L,47518L,47519L,47520L,47521L,47522L,47523L,47524L,
9814447525L,47526L,47527L,47528L,47529L,47530L,47531L,47532L,47533L,47534L,
9814547535L,47536L,47537L,47538L,47539L,47540L,47541L,47542L,47543L,47544L,
9814647545L,47546L,47547L,47548L,47549L,47550L,47551L,47552L,47553L,47554L,
9814747555L,47556L,47557L,47558L,47559L,47560L,47561L,47562L,47563L,47564L,
9814847565L,47566L,47567L,47568L,47569L,47570L,47571L,47572L,47573L,47574L,
9814947575L,47576L,47577L,47578L,47579L,47580L,47581L,47582L,47583L,47584L,
9815047585L,47586L,47587L,47588L,47589L,47590L,47591L,47592L,47593L,47594L,
9815147595L,47596L,47597L,47598L,47599L,47600L,47601L,47602L,47603L,47604L,
9815247605L,47606L,47607L,47608L,47609L,47610L,47611L,47612L,47613L,47614L,
9815347615L,47616L,47617L,47618L,47619L,47620L,47621L,47622L,47623L,47624L,
9815447625L,47626L,47627L,47628L,47629L,47630L,47631L,47632L,47633L,47634L,
9815547635L,47636L,47637L,47638L,47639L,47640L,47641L,47642L,47643L,47644L,
9815647645L,47646L,47647L,47648L,47649L,47650L,47651L,47652L,47653L,47654L,
9815747655L,47656L,47657L,47658L,47659L,47660L,47661L,47662L,47663L,47664L,
9815847665L,47666L,47667L,47668L,47669L,47670L,47671L,47672L,47673L,47674L,
9815947675L,47676L,47677L,47678L,47679L,47680L,47681L,47682L,47683L,47684L,
9816047685L,47686L,47687L,47688L,47689L,47690L,47691L,47692L,47693L,47694L,
9816147695L,47696L,47697L,47698L,47699L,47700L,47701L,47702L,47703L,47704L,
9816247705L,47706L,47707L,47708L,47709L,47710L,47711L,47712L,47713L,47714L,
9816347715L,47716L,47717L,47718L,47719L,47720L,47721L,47722L,47723L,47724L,
9816447725L,47726L,47727L,47728L,47729L,47730L,47731L,47732L,47733L,47734L,
9816547735L,47736L,47737L,47738L,47739L,47740L,47741L,47742L,47743L,47744L,
9816647745L,47746L,47747L,47748L,47749L,47750L,47751L,47752L,47753L,47754L,
9816747755L,47756L,47757L,47758L,47759L,47760L,47761L,47762L,47763L,47764L,
9816847765L,47766L,47767L,47768L,47769L,47770L,47771L,47772L,47773L,47774L,
9816947775L,47776L,47777L,47778L,47779L,47780L,47781L,47782L,47783L,47784L,
9817047785L,47786L,47787L,47788L,47789L,47790L,47791L,47792L,47793L,47794L,
9817147795L,47796L,47797L,47798L,47799L,47800L,47801L,47802L,47803L,47804L,
9817247805L,47806L,47807L,47808L,47809L,47810L,47811L,47812L,47813L,47814L,
9817347815L,47816L,47817L,47818L,47819L,47820L,47821L,47822L,47823L,47824L,
9817447825L,47826L,47827L,47828L,47829L,47830L,47831L,47832L,47833L,47834L,
9817547835L,47836L,47837L,47838L,47839L,47840L,47841L,47842L,47843L,47844L,
9817647845L,47846L,47847L,47848L,47849L,47850L,47851L,47852L,47853L,47854L,
9817747855L,47856L,47857L,47858L,47859L,47860L,47861L,47862L,47863L,47864L,
9817847865L,47866L,47867L,47868L,47869L,47870L,47871L,47872L,47873L,47874L,
9817947875L,47876L,47877L,47878L,47879L,47880L,47881L,47882L,47883L,47884L,
9818047885L,47886L,47887L,47888L,47889L,47890L,47891L,47892L,47893L,47894L,
9818147895L,47896L,47897L,47898L,47899L,47900L,47901L,47902L,47903L,47904L,
9818247905L,47906L,47907L,47908L,47909L,47910L,47911L,47912L,47913L,47914L,
9818347915L,47916L,47917L,47918L,47919L,47920L,47921L,47922L,47923L,47924L,
9818447925L,47926L,47927L,47928L,47929L,47930L,47931L,47932L,47933L,47934L,
9818547935L,47936L,47937L,47938L,47939L,47940L,47941L,47942L,47943L,47944L,
9818647945L,47946L,47947L,47948L,47949L,47950L,47951L,47952L,47953L,47954L,
9818747955L,47956L,47957L,47958L,47959L,47960L,47961L,47962L,47963L,47964L,
9818847965L,47966L,47967L,47968L,47969L,47970L,47971L,47972L,47973L,47974L,
9818947975L,47976L,47977L,47978L,47979L,47980L,47981L,47982L,47983L,47984L,
9819047985L,47986L,47987L,47988L,47989L,47990L,47991L,47992L,47993L,47994L,
9819147995L,47996L,47997L,47998L,47999L,48000L,48001L,48002L,48003L,48004L,
9819248005L,48006L,48007L,48008L,48009L,48010L,48011L,48012L,48013L,48014L,
9819348015L,48016L,48017L,48018L,48019L,48020L,48021L,48022L,48023L,48024L,
9819448025L,48026L,48027L,48028L,48029L,48030L,48031L,48032L,48033L,48034L,
9819548035L,48036L,48037L,48038L,48039L,48040L,48041L,48042L,48043L,48044L,
9819648045L,48046L,48047L,48048L,48049L,48050L,48051L,48052L,48053L,48054L,
9819748055L,48056L,48057L,48058L,48059L,48060L,48061L,48062L,48063L,48064L,
9819848065L,48066L,48067L,48068L,48069L,48070L,48071L,48072L,48073L,48074L,
9819948075L,48076L,48077L,48078L,48079L,48080L,48081L,48082L,48083L,48084L,
9820048085L,48086L,48087L,48088L,48089L,48090L,48091L,48092L,48093L,48094L,
9820148095L,48096L,48097L,48098L,48099L,48100L,48101L,48102L,48103L,48104L,
9820248105L,48106L,48107L,48108L,48109L,48110L,48111L,48112L,48113L,48114L,
9820348115L,48116L,48117L,48118L,48119L,48120L,48121L,48122L,48123L,48124L,
9820448125L,48126L,48127L,48128L,48129L,48130L,48131L,48132L,48133L,48134L,
9820548135L,48136L,48137L,48138L,48139L,48140L,48141L,48142L,48143L,48144L,
9820648145L,48146L,48147L,48148L,48149L,48150L,48151L,48152L,48153L,48154L,
9820748155L,48156L,48157L,48158L,48159L,48160L,48161L,48162L,48163L,48164L,
9820848165L,48166L,48167L,48168L,48169L,48170L,48171L,48172L,48173L,48174L,
9820948175L,48176L,48177L,48178L,48179L,48180L,48181L,48182L,48183L,48184L,
9821048185L,48186L,48187L,48188L,48189L,48190L,48191L,48192L,48193L,48194L,
9821148195L,48196L,48197L,48198L,48199L,48200L,48201L,48202L,48203L,48204L,
9821248205L,48206L,48207L,48208L,48209L,48210L,48211L,48212L,48213L,48214L,
9821348215L,48216L,48217L,48218L,48219L,48220L,48221L,48222L,48223L,48224L,
9821448225L,48226L,48227L,48228L,48229L,48230L,48231L,48232L,48233L,48234L,
9821548235L,48236L,48237L,48238L,48239L,48240L,48241L,48242L,48243L,48244L,
9821648245L,48246L,48247L,48248L,48249L,48250L,48251L,48252L,48253L,48254L,
9821748255L,48256L,48257L,48258L,48259L,48260L,48261L,48262L,48263L,48264L,
9821848265L,48266L,48267L,48268L,48269L,48270L,48271L,48272L,48273L,48274L,
9821948275L,48276L,48277L,48278L,48279L,48280L,48281L,48282L,48283L,48284L,
9822048285L,48286L,48287L,48288L,48289L,48290L,48291L,48292L,48293L,48294L,
9822148295L,48296L,48297L,48298L,48299L,48300L,48301L,48302L,48303L,48304L,
9822248305L,48306L,48307L,48308L,48309L,48310L,48311L,48312L,48313L,48314L,
9822348315L,48316L,48317L,48318L,48319L,48320L,48321L,48322L,48323L,48324L,
9822448325L,48326L,48327L,48328L,48329L,48330L,48331L,48332L,48333L,48334L,
9822548335L,48336L,48337L,48338L,48339L,48340L,48341L,48342L,48343L,48344L,
9822648345L,48346L,48347L,48348L,48349L,48350L,48351L,48352L,48353L,48354L,
9822748355L,48356L,48357L,48358L,48359L,48360L,48361L,48362L,48363L,48364L,
9822848365L,48366L,48367L,48368L,48369L,48370L,48371L,48372L,48373L,48374L,
9822948375L,48376L,48377L,48378L,48379L,48380L,48381L,48382L,48383L,48384L,
9823048385L,48386L,48387L,48388L,48389L,48390L,48391L,48392L,48393L,48394L,
9823148395L,48396L,48397L,48398L,48399L,48400L,48401L,48402L,48403L,48404L,
9823248405L,48406L,48407L,48408L,48409L,48410L,48411L,48412L,48413L,48414L,
9823348415L,48416L,48417L,48418L,48419L,48420L,48421L,48422L,48423L,48424L,
9823448425L,48426L,48427L,48428L,48429L,48430L,48431L,48432L,48433L,48434L,
9823548435L,48436L,48437L,48438L,48439L,48440L,48441L,48442L,48443L,48444L,
9823648445L,48446L,48447L,48448L,48449L,48450L,48451L,48452L,48453L,48454L,
9823748455L,48456L,48457L,48458L,48459L,48460L,48461L,48462L,48463L,48464L,
9823848465L,48466L,48467L,48468L,48469L,48470L,48471L,48472L,48473L,48474L,
9823948475L,48476L,48477L,48478L,48479L,48480L,48481L,48482L,48483L,48484L,
9824048485L,48486L,48487L,48488L,48489L,48490L,48491L,48492L,48493L,48494L,
9824148495L,48496L,48497L,48498L,48499L,48500L,48501L,48502L,48503L,48504L,
9824248505L,48506L,48507L,48508L,48509L,48510L,48511L,48512L,48513L,48514L,
9824348515L,48516L,48517L,48518L,48519L,48520L,48521L,48522L,48523L,48524L,
9824448525L,48526L,48527L,48528L,48529L,48530L,48531L,48532L,48533L,48534L,
9824548535L,48536L,48537L,48538L,48539L,48540L,48541L,48542L,48543L,48544L,
9824648545L,48546L,48547L,48548L,48549L,48550L,48551L,48552L,48553L,48554L,
9824748555L,48556L,48557L,48558L,48559L,48560L,48561L,48562L,48563L,48564L,
9824848565L,48566L,48567L,48568L,48569L,48570L,48571L,48572L,48573L,48574L,
9824948575L,48576L,48577L,48578L,48579L,48580L,48581L,48582L,48583L,48584L,
9825048585L,48586L,48587L,48588L,48589L,48590L,48591L,48592L,48593L,48594L,
9825148595L,48596L,48597L,48598L,48599L,48600L,48601L,48602L,48603L,48604L,
9825248605L,48606L,48607L,48608L,48609L,48610L,48611L,48612L,48613L,48614L,
9825348615L,48616L,48617L,48618L,48619L,48620L,48621L,48622L,48623L,48624L,
9825448625L,48626L,48627L,48628L,48629L,48630L,48631L,48632L,48633L,48634L,
9825548635L,48636L,48637L,48638L,48639L,48640L,48641L,48642L,48643L,48644L,
9825648645L,48646L,48647L,48648L,48649L,48650L,48651L,48652L,48653L,48654L,
9825748655L,48656L,48657L,48658L,48659L,48660L,48661L,48662L,48663L,48664L,
9825848665L,48666L,48667L,48668L,48669L,48670L,48671L,48672L,48673L,48674L,
9825948675L,48676L,48677L,48678L,48679L,48680L,48681L,48682L,48683L,48684L,
9826048685L,48686L,48687L,48688L,48689L,48690L,48691L,48692L,48693L,48694L,
9826148695L,48696L,48697L,48698L,48699L,48700L,48701L,48702L,48703L,48704L,
9826248705L,48706L,48707L,48708L,48709L,48710L,48711L,48712L,48713L,48714L,
9826348715L,48716L,48717L,48718L,48719L,48720L,48721L,48722L,48723L,48724L,
9826448725L,48726L,48727L,48728L,48729L,48730L,48731L,48732L,48733L,48734L,
9826548735L,48736L,48737L,48738L,48739L,48740L,48741L,48742L,48743L,48744L,
9826648745L,48746L,48747L,48748L,48749L,48750L,48751L,48752L,48753L,48754L,
9826748755L,48756L,48757L,48758L,48759L,48760L,48761L,48762L,48763L,48764L,
9826848765L,48766L,48767L,48768L,48769L,48770L,48771L,48772L,48773L,48774L,
9826948775L,48776L,48777L,48778L,48779L,48780L,48781L,48782L,48783L,48784L,
9827048785L,48786L,48787L,48788L,48789L,48790L,48791L,48792L,48793L,48794L,
9827148795L,48796L,48797L,48798L,48799L,48800L,48801L,48802L,48803L,48804L,
9827248805L,48806L,48807L,48808L,48809L,48810L,48811L,48812L,48813L,48814L,
9827348815L,48816L,48817L,48818L,48819L,48820L,48821L,48822L,48823L,48824L,
9827448825L,48826L,48827L,48828L,48829L,48830L,48831L,48832L,48833L,48834L,
9827548835L,48836L,48837L,48838L,48839L,48840L,48841L,48842L,48843L,48844L,
9827648845L,48846L,48847L,48848L,48849L,48850L,48851L,48852L,48853L,48854L,
9827748855L,48856L,48857L,48858L,48859L,48860L,48861L,48862L,48863L,48864L,
9827848865L,48866L,48867L,48868L,48869L,48870L,48871L,48872L,48873L,48874L,
9827948875L,48876L,48877L,48878L,48879L,48880L,48881L,48882L,48883L,48884L,
9828048885L,48886L,48887L,48888L,48889L,48890L,48891L,48892L,48893L,48894L,
9828148895L,48896L,48897L,48898L,48899L,48900L,48901L,48902L,48903L,48904L,
9828248905L,48906L,48907L,48908L,48909L,48910L,48911L,48912L,48913L,48914L,
9828348915L,48916L,48917L,48918L,48919L,48920L,48921L,48922L,48923L,48924L,
9828448925L,48926L,48927L,48928L,48929L,48930L,48931L,48932L,48933L,48934L,
9828548935L,48936L,48937L,48938L,48939L,48940L,48941L,48942L,48943L,48944L,
9828648945L,48946L,48947L,48948L,48949L,48950L,48951L,48952L,48953L,48954L,
9828748955L,48956L,48957L,48958L,48959L,48960L,48961L,48962L,48963L,48964L,
9828848965L,48966L,48967L,48968L,48969L,48970L,48971L,48972L,48973L,48974L,
9828948975L,48976L,48977L,48978L,48979L,48980L,48981L,48982L,48983L,48984L,
9829048985L,48986L,48987L,48988L,48989L,48990L,48991L,48992L,48993L,48994L,
9829148995L,48996L,48997L,48998L,48999L,49000L,49001L,49002L,49003L,49004L,
9829249005L,49006L,49007L,49008L,49009L,49010L,49011L,49012L,49013L,49014L,
9829349015L,49016L,49017L,49018L,49019L,49020L,49021L,49022L,49023L,49024L,
9829449025L,49026L,49027L,49028L,49029L,49030L,49031L,49032L,49033L,49034L,
9829549035L,49036L,49037L,49038L,49039L,49040L,49041L,49042L,49043L,49044L,
9829649045L,49046L,49047L,49048L,49049L,49050L,49051L,49052L,49053L,49054L,
9829749055L,49056L,49057L,49058L,49059L,49060L,49061L,49062L,49063L,49064L,
9829849065L,49066L,49067L,49068L,49069L,49070L,49071L,49072L,49073L,49074L,
9829949075L,49076L,49077L,49078L,49079L,49080L,49081L,49082L,49083L,49084L,
9830049085L,49086L,49087L,49088L,49089L,49090L,49091L,49092L,49093L,49094L,
9830149095L,49096L,49097L,49098L,49099L,49100L,49101L,49102L,49103L,49104L,
9830249105L,49106L,49107L,49108L,49109L,49110L,49111L,49112L,49113L,49114L,
9830349115L,49116L,49117L,49118L,49119L,49120L,49121L,49122L,49123L,49124L,
9830449125L,49126L,49127L,49128L,49129L,49130L,49131L,49132L,49133L,49134L,
9830549135L,49136L,49137L,49138L,49139L,49140L,49141L,49142L,49143L,49144L,
9830649145L,49146L,49147L,49148L,49149L,49150L,49151L,49152L,49153L,49154L,
9830749155L,49156L,49157L,49158L,49159L,49160L,49161L,49162L,49163L,49164L,
9830849165L,49166L,49167L,49168L,49169L,49170L,49171L,49172L,49173L,49174L,
9830949175L,49176L,49177L,49178L,49179L,49180L,49181L,49182L,49183L,49184L,
9831049185L,49186L,49187L,49188L,49189L,49190L,49191L,49192L,49193L,49194L,
9831149195L,49196L,49197L,49198L,49199L,49200L,49201L,49202L,49203L,49204L,
9831249205L,49206L,49207L,49208L,49209L,49210L,49211L,49212L,49213L,49214L,
9831349215L,49216L,49217L,49218L,49219L,49220L,49221L,49222L,49223L,49224L,
9831449225L,49226L,49227L,49228L,49229L,49230L,49231L,49232L,49233L,49234L,
9831549235L,49236L,49237L,49238L,49239L,49240L,49241L,49242L,49243L,49244L,
9831649245L,49246L,49247L,49248L,49249L,49250L,49251L,49252L,49253L,49254L,
9831749255L,49256L,49257L,49258L,49259L,49260L,49261L,49262L,49263L,49264L,
9831849265L,49266L,49267L,49268L,49269L,49270L,49271L,49272L,49273L,49274L,
9831949275L,49276L,49277L,49278L,49279L,49280L,49281L,49282L,49283L,49284L,
9832049285L,49286L,49287L,49288L,49289L,49290L,49291L,49292L,49293L,49294L,
9832149295L,49296L,49297L,49298L,49299L,49300L,49301L,49302L,49303L,49304L,
9832249305L,49306L,49307L,49308L,49309L,49310L,49311L,49312L,49313L,49314L,
9832349315L,49316L,49317L,49318L,49319L,49320L,49321L,49322L,49323L,49324L,
9832449325L,49326L,49327L,49328L,49329L,49330L,49331L,49332L,49333L,49334L,
9832549335L,49336L,49337L,49338L,49339L,49340L,49341L,49342L,49343L,49344L,
9832649345L,49346L,49347L,49348L,49349L,49350L,49351L,49352L,49353L,49354L,
9832749355L,49356L,49357L,49358L,49359L,49360L,49361L,49362L,49363L,49364L,
9832849365L,49366L,49367L,49368L,49369L,49370L,49371L,49372L,49373L,49374L,
9832949375L,49376L,49377L,49378L,49379L,49380L,49381L,49382L,49383L,49384L,
9833049385L,49386L,49387L,49388L,49389L,49390L,49391L,49392L,49393L,49394L,
9833149395L,49396L,49397L,49398L,49399L,49400L,49401L,49402L,49403L,49404L,
9833249405L,49406L,49407L,49408L,49409L,49410L,49411L,49412L,49413L,49414L,
9833349415L,49416L,49417L,49418L,49419L,49420L,49421L,49422L,49423L,49424L,
9833449425L,49426L,49427L,49428L,49429L,49430L,49431L,49432L,49433L,49434L,
9833549435L,49436L,49437L,49438L,49439L,49440L,49441L,49442L,49443L,49444L,
9833649445L,49446L,49447L,49448L,49449L,49450L,49451L,49452L,49453L,49454L,
9833749455L,49456L,49457L,49458L,49459L,49460L,49461L,49462L,49463L,49464L,
9833849465L,49466L,49467L,49468L,49469L,49470L,49471L,49472L,49473L,49474L,
9833949475L,49476L,49477L,49478L,49479L,49480L,49481L,49482L,49483L,49484L,
9834049485L,49486L,49487L,49488L,49489L,49490L,49491L,49492L,49493L,49494L,
9834149495L,49496L,49497L,49498L,49499L,49500L,49501L,49502L,49503L,49504L,
9834249505L,49506L,49507L,49508L,49509L,49510L,49511L,49512L,49513L,49514L,
9834349515L,49516L,49517L,49518L,49519L,49520L,49521L,49522L,49523L,49524L,
9834449525L,49526L,49527L,49528L,49529L,49530L,49531L,49532L,49533L,49534L,
9834549535L,49536L,49537L,49538L,49539L,49540L,49541L,49542L,49543L,49544L,
9834649545L,49546L,49547L,49548L,49549L,49550L,49551L,49552L,49553L,49554L,
9834749555L,49556L,49557L,49558L,49559L,49560L,49561L,49562L,49563L,49564L,
9834849565L,49566L,49567L,49568L,49569L,49570L,49571L,49572L,49573L,49574L,
9834949575L,49576L,49577L,49578L,49579L,49580L,49581L,49582L,49583L,49584L,
9835049585L,49586L,49587L,49588L,49589L,49590L,49591L,49592L,49593L,49594L,
9835149595L,49596L,49597L,49598L,49599L,49600L,49601L,49602L,49603L,49604L,
9835249605L,49606L,49607L,49608L,49609L,49610L,49611L,49612L,49613L,49614L,
9835349615L,49616L,49617L,49618L,49619L,49620L,49621L,49622L,49623L,49624L,
9835449625L,49626L,49627L,49628L,49629L,49630L,49631L,49632L,49633L,49634L,
9835549635L,49636L,49637L,49638L,49639L,49640L,49641L,49642L,49643L,49644L,
9835649645L,49646L,49647L,49648L,49649L,49650L,49651L,49652L,49653L,49654L,
9835749655L,49656L,49657L,49658L,49659L,49660L,49661L,49662L,49663L,49664L,
9835849665L,49666L,49667L,49668L,49669L,49670L,49671L,49672L,49673L,49674L,
9835949675L,49676L,49677L,49678L,49679L,49680L,49681L,49682L,49683L,49684L,
9836049685L,49686L,49687L,49688L,49689L,49690L,49691L,49692L,49693L,49694L,
9836149695L,49696L,49697L,49698L,49699L,49700L,49701L,49702L,49703L,49704L,
9836249705L,49706L,49707L,49708L,49709L,49710L,49711L,49712L,49713L,49714L,
9836349715L,49716L,49717L,49718L,49719L,49720L,49721L,49722L,49723L,49724L,
9836449725L,49726L,49727L,49728L,49729L,49730L,49731L,49732L,49733L,49734L,
9836549735L,49736L,49737L,49738L,49739L,49740L,49741L,49742L,49743L,49744L,
9836649745L,49746L,49747L,49748L,49749L,49750L,49751L,49752L,49753L,49754L,
9836749755L,49756L,49757L,49758L,49759L,49760L,49761L,49762L,49763L,49764L,
9836849765L,49766L,49767L,49768L,49769L,49770L,49771L,49772L,49773L,49774L,
9836949775L,49776L,49777L,49778L,49779L,49780L,49781L,49782L,49783L,49784L,
9837049785L,49786L,49787L,49788L,49789L,49790L,49791L,49792L,49793L,49794L,
9837149795L,49796L,49797L,49798L,49799L,49800L,49801L,49802L,49803L,49804L,
9837249805L,49806L,49807L,49808L,49809L,49810L,49811L,49812L,49813L,49814L,
9837349815L,49816L,49817L,49818L,49819L,49820L,49821L,49822L,49823L,49824L,
9837449825L,49826L,49827L,49828L,49829L,49830L,49831L,49832L,49833L,49834L,
9837549835L,49836L,49837L,49838L,49839L,49840L,49841L,49842L,49843L,49844L,
9837649845L,49846L,49847L,49848L,49849L,49850L,49851L,49852L,49853L,49854L,
9837749855L,49856L,49857L,49858L,49859L,49860L,49861L,49862L,49863L,49864L,
9837849865L,49866L,49867L,49868L,49869L,49870L,49871L,49872L,49873L,49874L,
9837949875L,49876L,49877L,49878L,49879L,49880L,49881L,49882L,49883L,49884L,
9838049885L,49886L,49887L,49888L,49889L,49890L,49891L,49892L,49893L,49894L,
9838149895L,49896L,49897L,49898L,49899L,49900L,49901L,49902L,49903L,49904L,
9838249905L,49906L,49907L,49908L,49909L,49910L,49911L,49912L,49913L,49914L,
9838349915L,49916L,49917L,49918L,49919L,49920L,49921L,49922L,49923L,49924L,
9838449925L,49926L,49927L,49928L,49929L,49930L,49931L,49932L,49933L,49934L,
9838549935L,49936L,49937L,49938L,49939L,49940L,49941L,49942L,49943L,49944L,
9838649945L,49946L,49947L,49948L,49949L,49950L,49951L,49952L,49953L,49954L,
9838749955L,49956L,49957L,49958L,49959L,49960L,49961L,49962L,49963L,49964L,
9838849965L,49966L,49967L,49968L,49969L,49970L,49971L,49972L,49973L,49974L,
9838949975L,49976L,49977L,49978L,49979L,49980L,49981L,49982L,49983L,49984L,
9839049985L,49986L,49987L,49988L,49989L,49990L,49991L,49992L,49993L,49994L,
9839149995L,49996L,49997L,49998L,49999L,50000L,50001L,50002L,50003L,50004L,
9839250005L,50006L,50007L,50008L,50009L,50010L,50011L,50012L,50013L,50014L,
9839350015L,50016L,50017L,50018L,50019L,50020L,50021L,50022L,50023L,50024L,
9839450025L,50026L,50027L,50028L,50029L,50030L,50031L,50032L,50033L,50034L,
9839550035L,50036L,50037L,50038L,50039L,50040L,50041L,50042L,50043L,50044L,
9839650045L,50046L,50047L,50048L,50049L,50050L,50051L,50052L,50053L,50054L,
9839750055L,50056L,50057L,50058L,50059L,50060L,50061L,50062L,50063L,50064L,
9839850065L,50066L,50067L,50068L,50069L,50070L,50071L,50072L,50073L,50074L,
9839950075L,50076L,50077L,50078L,50079L,50080L,50081L,50082L,50083L,50084L,
9840050085L,50086L,50087L,50088L,50089L,50090L,50091L,50092L,50093L,50094L,
9840150095L,50096L,50097L,50098L,50099L,50100L,50101L,50102L,50103L,50104L,
9840250105L,50106L,50107L,50108L,50109L,50110L,50111L,50112L,50113L,50114L,
9840350115L,50116L,50117L,50118L,50119L,50120L,50121L,50122L,50123L,50124L,
9840450125L,50126L,50127L,50128L,50129L,50130L,50131L,50132L,50133L,50134L,
9840550135L,50136L,50137L,50138L,50139L,50140L,50141L,50142L,50143L,50144L,
9840650145L,50146L,50147L,50148L,50149L,50150L,50151L,50152L,50153L,50154L,
9840750155L,50156L,50157L,50158L,50159L,50160L,50161L,50162L,50163L,50164L,
9840850165L,50166L,50167L,50168L,50169L,50170L,50171L,50172L,50173L,50174L,
9840950175L,50176L,50177L,50178L,50179L,50180L,50181L,50182L,50183L,50184L,
9841050185L,50186L,50187L,50188L,50189L,50190L,50191L,50192L,50193L,50194L,
9841150195L,50196L,50197L,50198L,50199L,50200L,50201L,50202L,50203L,50204L,
9841250205L,50206L,50207L,50208L,50209L,50210L,50211L,50212L,50213L,50214L,
9841350215L,50216L,50217L,50218L,50219L,50220L,50221L,50222L,50223L,50224L,
9841450225L,50226L,50227L,50228L,50229L,50230L,50231L,50232L,50233L,50234L,
9841550235L,50236L,50237L,50238L,50239L,50240L,50241L,50242L,50243L,50244L,
9841650245L,50246L,50247L,50248L,50249L,50250L,50251L,50252L,50253L,50254L,
9841750255L,50256L,50257L,50258L,50259L,50260L,50261L,50262L,50263L,50264L,
9841850265L,50266L,50267L,50268L,50269L,50270L,50271L,50272L,50273L,50274L,
9841950275L,50276L,50277L,50278L,50279L,50280L,50281L,50282L,50283L,50284L,
9842050285L,50286L,50287L,50288L,50289L,50290L,50291L,50292L,50293L,50294L,
9842150295L,50296L,50297L,50298L,50299L,50300L,50301L,50302L,50303L,50304L,
9842250305L,50306L,50307L,50308L,50309L,50310L,50311L,50312L,50313L,50314L,
9842350315L,50316L,50317L,50318L,50319L,50320L,50321L,50322L,50323L,50324L,
9842450325L,50326L,50327L,50328L,50329L,50330L,50331L,50332L,50333L,50334L,
9842550335L,50336L,50337L,50338L,50339L,50340L,50341L,50342L,50343L,50344L,
9842650345L,50346L,50347L,50348L,50349L,50350L,50351L,50352L,50353L,50354L,
9842750355L,50356L,50357L,50358L,50359L,50360L,50361L,50362L,50363L,50364L,
9842850365L,50366L,50367L,50368L,50369L,50370L,50371L,50372L,50373L,50374L,
9842950375L,50376L,50377L,50378L,50379L,50380L,50381L,50382L,50383L,50384L,
9843050385L,50386L,50387L,50388L,50389L,50390L,50391L,50392L,50393L,50394L,
9843150395L,50396L,50397L,50398L,50399L,50400L,50401L,50402L,50403L,50404L,
9843250405L,50406L,50407L,50408L,50409L,50410L,50411L,50412L,50413L,50414L,
9843350415L,50416L,50417L,50418L,50419L,50420L,50421L,50422L,50423L,50424L,
9843450425L,50426L,50427L,50428L,50429L,50430L,50431L,50432L,50433L,50434L,
9843550435L,50436L,50437L,50438L,50439L,50440L,50441L,50442L,50443L,50444L,
9843650445L,50446L,50447L,50448L,50449L,50450L,50451L,50452L,50453L,50454L,
9843750455L,50456L,50457L,50458L,50459L,50460L,50461L,50462L,50463L,50464L,
9843850465L,50466L,50467L,50468L,50469L,50470L,50471L,50472L,50473L,50474L,
9843950475L,50476L,50477L,50478L,50479L,50480L,50481L,50482L,50483L,50484L,
9844050485L,50486L,50487L,50488L,50489L,50490L,50491L,50492L,50493L,50494L,
9844150495L,50496L,50497L,50498L,50499L,50500L,50501L,50502L,50503L,50504L,
9844250505L,50506L,50507L,50508L,50509L,50510L,50511L,50512L,50513L,50514L,
9844350515L,50516L,50517L,50518L,50519L,50520L,50521L,50522L,50523L,50524L,
9844450525L,50526L,50527L,50528L,50529L,50530L,50531L,50532L,50533L,50534L,
9844550535L,50536L,50537L,50538L,50539L,50540L,50541L,50542L,50543L,50544L,
9844650545L,50546L,50547L,50548L,50549L,50550L,50551L,50552L,50553L,50554L,
9844750555L,50556L,50557L,50558L,50559L,50560L,50561L,50562L,50563L,50564L,
9844850565L,50566L,50567L,50568L,50569L,50570L,50571L,50572L,50573L,50574L,
9844950575L,50576L,50577L,50578L,50579L,50580L,50581L,50582L,50583L,50584L,
9845050585L,50586L,50587L,50588L,50589L,50590L,50591L,50592L,50593L,50594L,
9845150595L,50596L,50597L,50598L,50599L,50600L,50601L,50602L,50603L,50604L,
9845250605L,50606L,50607L,50608L,50609L,50610L,50611L,50612L,50613L,50614L,
9845350615L,50616L,50617L,50618L,50619L,50620L,50621L,50622L,50623L,50624L,
9845450625L,50626L,50627L,50628L,50629L,50630L,50631L,50632L,50633L,50634L,
9845550635L,50636L,50637L,50638L,50639L,50640L,50641L,50642L,50643L,50644L,
9845650645L,50646L,50647L,50648L,50649L,50650L,50651L,50652L,50653L,50654L,
9845750655L,50656L,50657L,50658L,50659L,50660L,50661L,50662L,50663L,50664L,
9845850665L,50666L,50667L,50668L,50669L,50670L,50671L,50672L,50673L,50674L,
9845950675L,50676L,50677L,50678L,50679L,50680L,50681L,50682L,50683L,50684L,
9846050685L,50686L,50687L,50688L,50689L,50690L,50691L,50692L,50693L,50694L,
9846150695L,50696L,50697L,50698L,50699L,50700L,50701L,50702L,50703L,50704L,
9846250705L,50706L,50707L,50708L,50709L,50710L,50711L,50712L,50713L,50714L,
9846350715L,50716L,50717L,50718L,50719L,50720L,50721L,50722L,50723L,50724L,
9846450725L,50726L,50727L,50728L,50729L,50730L,50731L,50732L,50733L,50734L,
9846550735L,50736L,50737L,50738L,50739L,50740L,50741L,50742L,50743L,50744L,
9846650745L,50746L,50747L,50748L,50749L,50750L,50751L,50752L,50753L,50754L,
9846750755L,50756L,50757L,50758L,50759L,50760L,50761L,50762L,50763L,50764L,
9846850765L,50766L,50767L,50768L,50769L,50770L,50771L,50772L,50773L,50774L,
9846950775L,50776L,50777L,50778L,50779L,50780L,50781L,50782L,50783L,50784L,
9847050785L,50786L,50787L,50788L,50789L,50790L,50791L,50792L,50793L,50794L,
9847150795L,50796L,50797L,50798L,50799L,50800L,50801L,50802L,50803L,50804L,
9847250805L,50806L,50807L,50808L,50809L,50810L,50811L,50812L,50813L,50814L,
9847350815L,50816L,50817L,50818L,50819L,50820L,50821L,50822L,50823L,50824L,
9847450825L,50826L,50827L,50828L,50829L,50830L,50831L,50832L,50833L,50834L,
9847550835L,50836L,50837L,50838L,50839L,50840L,50841L,50842L,50843L,50844L,
9847650845L,50846L,50847L,50848L,50849L,50850L,50851L,50852L,50853L,50854L,
9847750855L,50856L,50857L,50858L,50859L,50860L,50861L,50862L,50863L,50864L,
9847850865L,50866L,50867L,50868L,50869L,50870L,50871L,50872L,50873L,50874L,
9847950875L,50876L,50877L,50878L,50879L,50880L,50881L,50882L,50883L,50884L,
9848050885L,50886L,50887L,50888L,50889L,50890L,50891L,50892L,50893L,50894L,
9848150895L,50896L,50897L,50898L,50899L,50900L,50901L,50902L,50903L,50904L,
9848250905L,50906L,50907L,50908L,50909L,50910L,50911L,50912L,50913L,50914L,
9848350915L,50916L,50917L,50918L,50919L,50920L,50921L,50922L,50923L,50924L,
9848450925L,50926L,50927L,50928L,50929L,50930L,50931L,50932L,50933L,50934L,
9848550935L,50936L,50937L,50938L,50939L,50940L,50941L,50942L,50943L,50944L,
9848650945L,50946L,50947L,50948L,50949L,50950L,50951L,50952L,50953L,50954L,
9848750955L,50956L,50957L,50958L,50959L,50960L,50961L,50962L,50963L,50964L,
9848850965L,50966L,50967L,50968L,50969L,50970L,50971L,50972L,50973L,50974L,
9848950975L,50976L,50977L,50978L,50979L,50980L,50981L,50982L,50983L,50984L,
9849050985L,50986L,50987L,50988L,50989L,50990L,50991L,50992L,50993L,50994L,
9849150995L,50996L,50997L,50998L,50999L,51000L,51001L,51002L,51003L,51004L,
9849251005L,51006L,51007L,51008L,51009L,51010L,51011L,51012L,51013L,51014L,
9849351015L,51016L,51017L,51018L,51019L,51020L,51021L,51022L,51023L,51024L,
9849451025L,51026L,51027L,51028L,51029L,51030L,51031L,51032L,51033L,51034L,
9849551035L,51036L,51037L,51038L,51039L,51040L,51041L,51042L,51043L,51044L,
9849651045L,51046L,51047L,51048L,51049L,51050L,51051L,51052L,51053L,51054L,
9849751055L,51056L,51057L,51058L,51059L,51060L,51061L,51062L,51063L,51064L,
9849851065L,51066L,51067L,51068L,51069L,51070L,51071L,51072L,51073L,51074L,
9849951075L,51076L,51077L,51078L,51079L,51080L,51081L,51082L,51083L,51084L,
9850051085L,51086L,51087L,51088L,51089L,51090L,51091L,51092L,51093L,51094L,
9850151095L,51096L,51097L,51098L,51099L,51100L,51101L,51102L,51103L,51104L,
9850251105L,51106L,51107L,51108L,51109L,51110L,51111L,51112L,51113L,51114L,
9850351115L,51116L,51117L,51118L,51119L,51120L,51121L,51122L,51123L,51124L,
9850451125L,51126L,51127L,51128L,51129L,51130L,51131L,51132L,51133L,51134L,
9850551135L,51136L,51137L,51138L,51139L,51140L,51141L,51142L,51143L,51144L,
9850651145L,51146L,51147L,51148L,51149L,51150L,51151L,51152L,51153L,51154L,
9850751155L,51156L,51157L,51158L,51159L,51160L,51161L,51162L,51163L,51164L,
9850851165L,51166L,51167L,51168L,51169L,51170L,51171L,51172L,51173L,51174L,
9850951175L,51176L,51177L,51178L,51179L,51180L,51181L,51182L,51183L,51184L,
9851051185L,51186L,51187L,51188L,51189L,51190L,51191L,51192L,51193L,51194L,
9851151195L,51196L,51197L,51198L,51199L,51200L,51201L,51202L,51203L,51204L,
9851251205L,51206L,51207L,51208L,51209L,51210L,51211L,51212L,51213L,51214L,
9851351215L,51216L,51217L,51218L,51219L,51220L,51221L,51222L,51223L,51224L,
9851451225L,51226L,51227L,51228L,51229L,51230L,51231L,51232L,51233L,51234L,
9851551235L,51236L,51237L,51238L,51239L,51240L,51241L,51242L,51243L,51244L,
9851651245L,51246L,51247L,51248L,51249L,51250L,51251L,51252L,51253L,51254L,
9851751255L,51256L,51257L,51258L,51259L,51260L,51261L,51262L,51263L,51264L,
9851851265L,51266L,51267L,51268L,51269L,51270L,51271L,51272L,51273L,51274L,
9851951275L,51276L,51277L,51278L,51279L,51280L,51281L,51282L,51283L,51284L,
9852051285L,51286L,51287L,51288L,51289L,51290L,51291L,51292L,51293L,51294L,
9852151295L,51296L,51297L,51298L,51299L,51300L,51301L,51302L,51303L,51304L,
9852251305L,51306L,51307L,51308L,51309L,51310L,51311L,51312L,51313L,51314L,
9852351315L,51316L,51317L,51318L,51319L,51320L,51321L,51322L,51323L,51324L,
9852451325L,51326L,51327L,51328L,51329L,51330L,51331L,51332L,51333L,51334L,
9852551335L,51336L,51337L,51338L,51339L,51340L,51341L,51342L,51343L,51344L,
9852651345L,51346L,51347L,51348L,51349L,51350L,51351L,51352L,51353L,51354L,
9852751355L,51356L,51357L,51358L,51359L,51360L,51361L,51362L,51363L,51364L,
9852851365L,51366L,51367L,51368L,51369L,51370L,51371L,51372L,51373L,51374L,
9852951375L,51376L,51377L,51378L,51379L,51380L,51381L,51382L,51383L,51384L,
9853051385L,51386L,51387L,51388L,51389L,51390L,51391L,51392L,51393L,51394L,
9853151395L,51396L,51397L,51398L,51399L,51400L,51401L,51402L,51403L,51404L,
9853251405L,51406L,51407L,51408L,51409L,51410L,51411L,51412L,51413L,51414L,
9853351415L,51416L,51417L,51418L,51419L,51420L,51421L,51422L,51423L,51424L,
9853451425L,51426L,51427L,51428L,51429L,51430L,51431L,51432L,51433L,51434L,
9853551435L,51436L,51437L,51438L,51439L,51440L,51441L,51442L,51443L,51444L,
9853651445L,51446L,51447L,51448L,51449L,51450L,51451L,51452L,51453L,51454L,
9853751455L,51456L,51457L,51458L,51459L,51460L,51461L,51462L,51463L,51464L,
9853851465L,51466L,51467L,51468L,51469L,51470L,51471L,51472L,51473L,51474L,
9853951475L,51476L,51477L,51478L,51479L,51480L,51481L,51482L,51483L,51484L,
9854051485L,51486L,51487L,51488L,51489L,51490L,51491L,51492L,51493L,51494L,
9854151495L,51496L,51497L,51498L,51499L,51500L,51501L,51502L,51503L,51504L,
9854251505L,51506L,51507L,51508L,51509L,51510L,51511L,51512L,51513L,51514L,
9854351515L,51516L,51517L,51518L,51519L,51520L,51521L,51522L,51523L,51524L,
9854451525L,51526L,51527L,51528L,51529L,51530L,51531L,51532L,51533L,51534L,
9854551535L,51536L,51537L,51538L,51539L,51540L,51541L,51542L,51543L,51544L,
9854651545L,51546L,51547L,51548L,51549L,51550L,51551L,51552L,51553L,51554L,
9854751555L,51556L,51557L,51558L,51559L,51560L,51561L,51562L,51563L,51564L,
9854851565L,51566L,51567L,51568L,51569L,51570L,51571L,51572L,51573L,51574L,
9854951575L,51576L,51577L,51578L,51579L,51580L,51581L,51582L,51583L,51584L,
9855051585L,51586L,51587L,51588L,51589L,51590L,51591L,51592L,51593L,51594L,
9855151595L,51596L,51597L,51598L,51599L,51600L,51601L,51602L,51603L,51604L,
9855251605L,51606L,51607L,51608L,51609L,51610L,51611L,51612L,51613L,51614L,
9855351615L,51616L,51617L,51618L,51619L,51620L,51621L,51622L,51623L,51624L,
9855451625L,51626L,51627L,51628L,51629L,51630L,51631L,51632L,51633L,51634L,
9855551635L,51636L,51637L,51638L,51639L,51640L,51641L,51642L,51643L,51644L,
9855651645L,51646L,51647L,51648L,51649L,51650L,51651L,51652L,51653L,51654L,
9855751655L,51656L,51657L,51658L,51659L,51660L,51661L,51662L,51663L,51664L,
9855851665L,51666L,51667L,51668L,51669L,51670L,51671L,51672L,51673L,51674L,
9855951675L,51676L,51677L,51678L,51679L,51680L,51681L,51682L,51683L,51684L,
9856051685L,51686L,51687L,51688L,51689L,51690L,51691L,51692L,51693L,51694L,
9856151695L,51696L,51697L,51698L,51699L,51700L,51701L,51702L,51703L,51704L,
9856251705L,51706L,51707L,51708L,51709L,51710L,51711L,51712L,51713L,51714L,
9856351715L,51716L,51717L,51718L,51719L,51720L,51721L,51722L,51723L,51724L,
9856451725L,51726L,51727L,51728L,51729L,51730L,51731L,51732L,51733L,51734L,
9856551735L,51736L,51737L,51738L,51739L,51740L,51741L,51742L,51743L,51744L,
9856651745L,51746L,51747L,51748L,51749L,51750L,51751L,51752L,51753L,51754L,
9856751755L,51756L,51757L,51758L,51759L,51760L,51761L,51762L,51763L,51764L,
9856851765L,51766L,51767L,51768L,51769L,51770L,51771L,51772L,51773L,51774L,
9856951775L,51776L,51777L,51778L,51779L,51780L,51781L,51782L,51783L,51784L,
9857051785L,51786L,51787L,51788L,51789L,51790L,51791L,51792L,51793L,51794L,
9857151795L,51796L,51797L,51798L,51799L,51800L,51801L,51802L,51803L,51804L,
9857251805L,51806L,51807L,51808L,51809L,51810L,51811L,51812L,51813L,51814L,
9857351815L,51816L,51817L,51818L,51819L,51820L,51821L,51822L,51823L,51824L,
9857451825L,51826L,51827L,51828L,51829L,51830L,51831L,51832L,51833L,51834L,
9857551835L,51836L,51837L,51838L,51839L,51840L,51841L,51842L,51843L,51844L,
9857651845L,51846L,51847L,51848L,51849L,51850L,51851L,51852L,51853L,51854L,
9857751855L,51856L,51857L,51858L,51859L,51860L,51861L,51862L,51863L,51864L,
9857851865L,51866L,51867L,51868L,51869L,51870L,51871L,51872L,51873L,51874L,
9857951875L,51876L,51877L,51878L,51879L,51880L,51881L,51882L,51883L,51884L,
9858051885L,51886L,51887L,51888L,51889L,51890L,51891L,51892L,51893L,51894L,
9858151895L,51896L,51897L,51898L,51899L,51900L,51901L,51902L,51903L,51904L,
9858251905L,51906L,51907L,51908L,51909L,51910L,51911L,51912L,51913L,51914L,
9858351915L,51916L,51917L,51918L,51919L,51920L,51921L,51922L,51923L,51924L,
9858451925L,51926L,51927L,51928L,51929L,51930L,51931L,51932L,51933L,51934L,
9858551935L,51936L,51937L,51938L,51939L,51940L,51941L,51942L,51943L,51944L,
9858651945L,51946L,51947L,51948L,51949L,51950L,51951L,51952L,51953L,51954L,
9858751955L,51956L,51957L,51958L,51959L,51960L,51961L,51962L,51963L,51964L,
9858851965L,51966L,51967L,51968L,51969L,51970L,51971L,51972L,51973L,51974L,
9858951975L,51976L,51977L,51978L,51979L,51980L,51981L,51982L,51983L,51984L,
9859051985L,51986L,51987L,51988L,51989L,51990L,51991L,51992L,51993L,51994L,
9859151995L,51996L,51997L,51998L,51999L,52000L,52001L,52002L,52003L,52004L,
9859252005L,52006L,52007L,52008L,52009L,52010L,52011L,52012L,52013L,52014L,
9859352015L,52016L,52017L,52018L,52019L,52020L,52021L,52022L,52023L,52024L,
9859452025L,52026L,52027L,52028L,52029L,52030L,52031L,52032L,52033L,52034L,
9859552035L,52036L,52037L,52038L,52039L,52040L,52041L,52042L,52043L,52044L,
9859652045L,52046L,52047L,52048L,52049L,52050L,52051L,52052L,52053L,52054L,
9859752055L,52056L,52057L,52058L,52059L,52060L,52061L,52062L,52063L,52064L,
9859852065L,52066L,52067L,52068L,52069L,52070L,52071L,52072L,52073L,52074L,
9859952075L,52076L,52077L,52078L,52079L,52080L,52081L,52082L,52083L,52084L,
9860052085L,52086L,52087L,52088L,52089L,52090L,52091L,52092L,52093L,52094L,
9860152095L,52096L,52097L,52098L,52099L,52100L,52101L,52102L,52103L,52104L,
9860252105L,52106L,52107L,52108L,52109L,52110L,52111L,52112L,52113L,52114L,
9860352115L,52116L,52117L,52118L,52119L,52120L,52121L,52122L,52123L,52124L,
9860452125L,52126L,52127L,52128L,52129L,52130L,52131L,52132L,52133L,52134L,
9860552135L,52136L,52137L,52138L,52139L,52140L,52141L,52142L,52143L,52144L,
9860652145L,52146L,52147L,52148L,52149L,52150L,52151L,52152L,52153L,52154L,
9860752155L,52156L,52157L,52158L,52159L,52160L,52161L,52162L,52163L,52164L,
9860852165L,52166L,52167L,52168L,52169L,52170L,52171L,52172L,52173L,52174L,
9860952175L,52176L,52177L,52178L,52179L,52180L,52181L,52182L,52183L,52184L,
9861052185L,52186L,52187L,52188L,52189L,52190L,52191L,52192L,52193L,52194L,
9861152195L,52196L,52197L,52198L,52199L,52200L,52201L,52202L,52203L,52204L,
9861252205L,52206L,52207L,52208L,52209L,52210L,52211L,52212L,52213L,52214L,
9861352215L,52216L,52217L,52218L,52219L,52220L,52221L,52222L,52223L,52224L,
9861452225L,52226L,52227L,52228L,52229L,52230L,52231L,52232L,52233L,52234L,
9861552235L,52236L,52237L,52238L,52239L,52240L,52241L,52242L,52243L,52244L,
9861652245L,52246L,52247L,52248L,52249L,52250L,52251L,52252L,52253L,52254L,
9861752255L,52256L,52257L,52258L,52259L,52260L,52261L,52262L,52263L,52264L,
9861852265L,52266L,52267L,52268L,52269L,52270L,52271L,52272L,52273L,52274L,
9861952275L,52276L,52277L,52278L,52279L,52280L,52281L,52282L,52283L,52284L,
9862052285L,52286L,52287L,52288L,52289L,52290L,52291L,52292L,52293L,52294L,
9862152295L,52296L,52297L,52298L,52299L,52300L,52301L,52302L,52303L,52304L,
9862252305L,52306L,52307L,52308L,52309L,52310L,52311L,52312L,52313L,52314L,
9862352315L,52316L,52317L,52318L,52319L,52320L,52321L,52322L,52323L,52324L,
9862452325L,52326L,52327L,52328L,52329L,52330L,52331L,52332L,52333L,52334L,
9862552335L,52336L,52337L,52338L,52339L,52340L,52341L,52342L,52343L,52344L,
9862652345L,52346L,52347L,52348L,52349L,52350L,52351L,52352L,52353L,52354L,
9862752355L,52356L,52357L,52358L,52359L,52360L,52361L,52362L,52363L,52364L,
9862852365L,52366L,52367L,52368L,52369L,52370L,52371L,52372L,52373L,52374L,
9862952375L,52376L,52377L,52378L,52379L,52380L,52381L,52382L,52383L,52384L,
9863052385L,52386L,52387L,52388L,52389L,52390L,52391L,52392L,52393L,52394L,
9863152395L,52396L,52397L,52398L,52399L,52400L,52401L,52402L,52403L,52404L,
9863252405L,52406L,52407L,52408L,52409L,52410L,52411L,52412L,52413L,52414L,
9863352415L,52416L,52417L,52418L,52419L,52420L,52421L,52422L,52423L,52424L,
9863452425L,52426L,52427L,52428L,52429L,52430L,52431L,52432L,52433L,52434L,
9863552435L,52436L,52437L,52438L,52439L,52440L,52441L,52442L,52443L,52444L,
9863652445L,52446L,52447L,52448L,52449L,52450L,52451L,52452L,52453L,52454L,
9863752455L,52456L,52457L,52458L,52459L,52460L,52461L,52462L,52463L,52464L,
9863852465L,52466L,52467L,52468L,52469L,52470L,52471L,52472L,52473L,52474L,
9863952475L,52476L,52477L,52478L,52479L,52480L,52481L,52482L,52483L,52484L,
9864052485L,52486L,52487L,52488L,52489L,52490L,52491L,52492L,52493L,52494L,
9864152495L,52496L,52497L,52498L,52499L,52500L,52501L,52502L,52503L,52504L,
9864252505L,52506L,52507L,52508L,52509L,52510L,52511L,52512L,52513L,52514L,
9864352515L,52516L,52517L,52518L,52519L,52520L,52521L,52522L,52523L,52524L,
9864452525L,52526L,52527L,52528L,52529L,52530L,52531L,52532L,52533L,52534L,
9864552535L,52536L,52537L,52538L,52539L,52540L,52541L,52542L,52543L,52544L,
9864652545L,52546L,52547L,52548L,52549L,52550L,52551L,52552L,52553L,52554L,
9864752555L,52556L,52557L,52558L,52559L,52560L,52561L,52562L,52563L,52564L,
9864852565L,52566L,52567L,52568L,52569L,52570L,52571L,52572L,52573L,52574L,
9864952575L,52576L,52577L,52578L,52579L,52580L,52581L,52582L,52583L,52584L,
9865052585L,52586L,52587L,52588L,52589L,52590L,52591L,52592L,52593L,52594L,
9865152595L,52596L,52597L,52598L,52599L,52600L,52601L,52602L,52603L,52604L,
9865252605L,52606L,52607L,52608L,52609L,52610L,52611L,52612L,52613L,52614L,
9865352615L,52616L,52617L,52618L,52619L,52620L,52621L,52622L,52623L,52624L,
9865452625L,52626L,52627L,52628L,52629L,52630L,52631L,52632L,52633L,52634L,
9865552635L,52636L,52637L,52638L,52639L,52640L,52641L,52642L,52643L,52644L,
9865652645L,52646L,52647L,52648L,52649L,52650L,52651L,52652L,52653L,52654L,
9865752655L,52656L,52657L,52658L,52659L,52660L,52661L,52662L,52663L,52664L,
9865852665L,52666L,52667L,52668L,52669L,52670L,52671L,52672L,52673L,52674L,
9865952675L,52676L,52677L,52678L,52679L,52680L,52681L,52682L,52683L,52684L,
9866052685L,52686L,52687L,52688L,52689L,52690L,52691L,52692L,52693L,52694L,
9866152695L,52696L,52697L,52698L,52699L,52700L,52701L,52702L,52703L,52704L,
9866252705L,52706L,52707L,52708L,52709L,52710L,52711L,52712L,52713L,52714L,
9866352715L,52716L,52717L,52718L,52719L,52720L,52721L,52722L,52723L,52724L,
9866452725L,52726L,52727L,52728L,52729L,52730L,52731L,52732L,52733L,52734L,
9866552735L,52736L,52737L,52738L,52739L,52740L,52741L,52742L,52743L,52744L,
9866652745L,52746L,52747L,52748L,52749L,52750L,52751L,52752L,52753L,52754L,
9866752755L,52756L,52757L,52758L,52759L,52760L,52761L,52762L,52763L,52764L,
9866852765L,52766L,52767L,52768L,52769L,52770L,52771L,52772L,52773L,52774L,
9866952775L,52776L,52777L,52778L,52779L,52780L,52781L,52782L,52783L,52784L,
9867052785L,52786L,52787L,52788L,52789L,52790L,52791L,52792L,52793L,52794L,
9867152795L,52796L,52797L,52798L,52799L,52800L,52801L,52802L,52803L,52804L,
9867252805L,52806L,52807L,52808L,52809L,52810L,52811L,52812L,52813L,52814L,
9867352815L,52816L,52817L,52818L,52819L,52820L,52821L,52822L,52823L,52824L,
9867452825L,52826L,52827L,52828L,52829L,52830L,52831L,52832L,52833L,52834L,
9867552835L,52836L,52837L,52838L,52839L,52840L,52841L,52842L,52843L,52844L,
9867652845L,52846L,52847L,52848L,52849L,52850L,52851L,52852L,52853L,52854L,
9867752855L,52856L,52857L,52858L,52859L,52860L,52861L,52862L,52863L,52864L,
9867852865L,52866L,52867L,52868L,52869L,52870L,52871L,52872L,52873L,52874L,
9867952875L,52876L,52877L,52878L,52879L,52880L,52881L,52882L,52883L,52884L,
9868052885L,52886L,52887L,52888L,52889L,52890L,52891L,52892L,52893L,52894L,
9868152895L,52896L,52897L,52898L,52899L,52900L,52901L,52902L,52903L,52904L,
9868252905L,52906L,52907L,52908L,52909L,52910L,52911L,52912L,52913L,52914L,
9868352915L,52916L,52917L,52918L,52919L,52920L,52921L,52922L,52923L,52924L,
9868452925L,52926L,52927L,52928L,52929L,52930L,52931L,52932L,52933L,52934L,
9868552935L,52936L,52937L,52938L,52939L,52940L,52941L,52942L,52943L,52944L,
9868652945L,52946L,52947L,52948L,52949L,52950L,52951L,52952L,52953L,52954L,
9868752955L,52956L,52957L,52958L,52959L,52960L,52961L,52962L,52963L,52964L,
9868852965L,52966L,52967L,52968L,52969L,52970L,52971L,52972L,52973L,52974L,
9868952975L,52976L,52977L,52978L,52979L,52980L,52981L,52982L,52983L,52984L,
9869052985L,52986L,52987L,52988L,52989L,52990L,52991L,52992L,52993L,52994L,
9869152995L,52996L,52997L,52998L,52999L,53000L,53001L,53002L,53003L,53004L,
9869253005L,53006L,53007L,53008L,53009L,53010L,53011L,53012L,53013L,53014L,
9869353015L,53016L,53017L,53018L,53019L,53020L,53021L,53022L,53023L,53024L,
9869453025L,53026L,53027L,53028L,53029L,53030L,53031L,53032L,53033L,53034L,
9869553035L,53036L,53037L,53038L,53039L,53040L,53041L,53042L,53043L,53044L,
9869653045L,53046L,53047L,53048L,53049L,53050L,53051L,53052L,53053L,53054L,
9869753055L,53056L,53057L,53058L,53059L,53060L,53061L,53062L,53063L,53064L,
9869853065L,53066L,53067L,53068L,53069L,53070L,53071L,53072L,53073L,53074L,
9869953075L,53076L,53077L,53078L,53079L,53080L,53081L,53082L,53083L,53084L,
9870053085L,53086L,53087L,53088L,53089L,53090L,53091L,53092L,53093L,53094L,
9870153095L,53096L,53097L,53098L,53099L,53100L,53101L,53102L,53103L,53104L,
9870253105L,53106L,53107L,53108L,53109L,53110L,53111L,53112L,53113L,53114L,
9870353115L,53116L,53117L,53118L,53119L,53120L,53121L,53122L,53123L,53124L,
9870453125L,53126L,53127L,53128L,53129L,53130L,53131L,53132L,53133L,53134L,
9870553135L,53136L,53137L,53138L,53139L,53140L,53141L,53142L,53143L,53144L,
9870653145L,53146L,53147L,53148L,53149L,53150L,53151L,53152L,53153L,53154L,
9870753155L,53156L,53157L,53158L,53159L,53160L,53161L,53162L,53163L,53164L,
9870853165L,53166L,53167L,53168L,53169L,53170L,53171L,53172L,53173L,53174L,
9870953175L,53176L,53177L,53178L,53179L,53180L,53181L,53182L,53183L,53184L,
9871053185L,53186L,53187L,53188L,53189L,53190L,53191L,53192L,53193L,53194L,
9871153195L,53196L,53197L,53198L,53199L,53200L,53201L,53202L,53203L,53204L,
9871253205L,53206L,53207L,53208L,53209L,53210L,53211L,53212L,53213L,53214L,
9871353215L,53216L,53217L,53218L,53219L,53220L,53221L,53222L,53223L,53224L,
9871453225L,53226L,53227L,53228L,53229L,53230L,53231L,53232L,53233L,53234L,
9871553235L,53236L,53237L,53238L,53239L,53240L,53241L,53242L,53243L,53244L,
9871653245L,53246L,53247L,53248L,53249L,53250L,53251L,53252L,53253L,53254L,
9871753255L,53256L,53257L,53258L,53259L,53260L,53261L,53262L,53263L,53264L,
9871853265L,53266L,53267L,53268L,53269L,53270L,53271L,53272L,53273L,53274L,
9871953275L,53276L,53277L,53278L,53279L,53280L,53281L,53282L,53283L,53284L,
9872053285L,53286L,53287L,53288L,53289L,53290L,53291L,53292L,53293L,53294L,
9872153295L,53296L,53297L,53298L,53299L,53300L,53301L,53302L,53303L,53304L,
9872253305L,53306L,53307L,53308L,53309L,53310L,53311L,53312L,53313L,53314L,
9872353315L,53316L,53317L,53318L,53319L,53320L,53321L,53322L,53323L,53324L,
9872453325L,53326L,53327L,53328L,53329L,53330L,53331L,53332L,53333L,53334L,
9872553335L,53336L,53337L,53338L,53339L,53340L,53341L,53342L,53343L,53344L,
9872653345L,53346L,53347L,53348L,53349L,53350L,53351L,53352L,53353L,53354L,
9872753355L,53356L,53357L,53358L,53359L,53360L,53361L,53362L,53363L,53364L,
9872853365L,53366L,53367L,53368L,53369L,53370L,53371L,53372L,53373L,53374L,
9872953375L,53376L,53377L,53378L,53379L,53380L,53381L,53382L,53383L,53384L,
9873053385L,53386L,53387L,53388L,53389L,53390L,53391L,53392L,53393L,53394L,
9873153395L,53396L,53397L,53398L,53399L,53400L,53401L,53402L,53403L,53404L,
9873253405L,53406L,53407L,53408L,53409L,53410L,53411L,53412L,53413L,53414L,
9873353415L,53416L,53417L,53418L,53419L,53420L,53421L,53422L,53423L,53424L,
9873453425L,53426L,53427L,53428L,53429L,53430L,53431L,53432L,53433L,53434L,
9873553435L,53436L,53437L,53438L,53439L,53440L,53441L,53442L,53443L,53444L,
9873653445L,53446L,53447L,53448L,53449L,53450L,53451L,53452L,53453L,53454L,
9873753455L,53456L,53457L,53458L,53459L,53460L,53461L,53462L,53463L,53464L,
9873853465L,53466L,53467L,53468L,53469L,53470L,53471L,53472L,53473L,53474L,
9873953475L,53476L,53477L,53478L,53479L,53480L,53481L,53482L,53483L,53484L,
9874053485L,53486L,53487L,53488L,53489L,53490L,53491L,53492L,53493L,53494L,
9874153495L,53496L,53497L,53498L,53499L,53500L,53501L,53502L,53503L,53504L,
9874253505L,53506L,53507L,53508L,53509L,53510L,53511L,53512L,53513L,53514L,
9874353515L,53516L,53517L,53518L,53519L,53520L,53521L,53522L,53523L,53524L,
9874453525L,53526L,53527L,53528L,53529L,53530L,53531L,53532L,53533L,53534L,
9874553535L,53536L,53537L,53538L,53539L,53540L,53541L,53542L,53543L,53544L,
9874653545L,53546L,53547L,53548L,53549L,53550L,53551L,53552L,53553L,53554L,
9874753555L,53556L,53557L,53558L,53559L,53560L,53561L,53562L,53563L,53564L,
9874853565L,53566L,53567L,53568L,53569L,53570L,53571L,53572L,53573L,53574L,
9874953575L,53576L,53577L,53578L,53579L,53580L,53581L,53582L,53583L,53584L,
9875053585L,53586L,53587L,53588L,53589L,53590L,53591L,53592L,53593L,53594L,
9875153595L,53596L,53597L,53598L,53599L,53600L,53601L,53602L,53603L,53604L,
9875253605L,53606L,53607L,53608L,53609L,53610L,53611L,53612L,53613L,53614L,
9875353615L,53616L,53617L,53618L,53619L,53620L,53621L,53622L,53623L,53624L,
9875453625L,53626L,53627L,53628L,53629L,53630L,53631L,53632L,53633L,53634L,
9875553635L,53636L,53637L,53638L,53639L,53640L,53641L,53642L,53643L,53644L,
9875653645L,53646L,53647L,53648L,53649L,53650L,53651L,53652L,53653L,53654L,
9875753655L,53656L,53657L,53658L,53659L,53660L,53661L,53662L,53663L,53664L,
9875853665L,53666L,53667L,53668L,53669L,53670L,53671L,53672L,53673L,53674L,
9875953675L,53676L,53677L,53678L,53679L,53680L,53681L,53682L,53683L,53684L,
9876053685L,53686L,53687L,53688L,53689L,53690L,53691L,53692L,53693L,53694L,
9876153695L,53696L,53697L,53698L,53699L,53700L,53701L,53702L,53703L,53704L,
9876253705L,53706L,53707L,53708L,53709L,53710L,53711L,53712L,53713L,53714L,
9876353715L,53716L,53717L,53718L,53719L,53720L,53721L,53722L,53723L,53724L,
9876453725L,53726L,53727L,53728L,53729L,53730L,53731L,53732L,53733L,53734L,
9876553735L,53736L,53737L,53738L,53739L,53740L,53741L,53742L,53743L,53744L,
9876653745L,53746L,53747L,53748L,53749L,53750L,53751L,53752L,53753L,53754L,
9876753755L,53756L,53757L,53758L,53759L,53760L,53761L,53762L,53763L,53764L,
9876853765L,53766L,53767L,53768L,53769L,53770L,53771L,53772L,53773L,53774L,
9876953775L,53776L,53777L,53778L,53779L,53780L,53781L,53782L,53783L,53784L,
9877053785L,53786L,53787L,53788L,53789L,53790L,53791L,53792L,53793L,53794L,
9877153795L,53796L,53797L,53798L,53799L,53800L,53801L,53802L,53803L,53804L,
9877253805L,53806L,53807L,53808L,53809L,53810L,53811L,53812L,53813L,53814L,
9877353815L,53816L,53817L,53818L,53819L,53820L,53821L,53822L,53823L,53824L,
9877453825L,53826L,53827L,53828L,53829L,53830L,53831L,53832L,53833L,53834L,
9877553835L,53836L,53837L,53838L,53839L,53840L,53841L,53842L,53843L,53844L,
9877653845L,53846L,53847L,53848L,53849L,53850L,53851L,53852L,53853L,53854L,
9877753855L,53856L,53857L,53858L,53859L,53860L,53861L,53862L,53863L,53864L,
9877853865L,53866L,53867L,53868L,53869L,53870L,53871L,53872L,53873L,53874L,
9877953875L,53876L,53877L,53878L,53879L,53880L,53881L,53882L,53883L,53884L,
9878053885L,53886L,53887L,53888L,53889L,53890L,53891L,53892L,53893L,53894L,
9878153895L,53896L,53897L,53898L,53899L,53900L,53901L,53902L,53903L,53904L,
9878253905L,53906L,53907L,53908L,53909L,53910L,53911L,53912L,53913L,53914L,
9878353915L,53916L,53917L,53918L,53919L,53920L,53921L,53922L,53923L,53924L,
9878453925L,53926L,53927L,53928L,53929L,53930L,53931L,53932L,53933L,53934L,
9878553935L,53936L,53937L,53938L,53939L,53940L,53941L,53942L,53943L,53944L,
9878653945L,53946L,53947L,53948L,53949L,53950L,53951L,53952L,53953L,53954L,
9878753955L,53956L,53957L,53958L,53959L,53960L,53961L,53962L,53963L,53964L,
9878853965L,53966L,53967L,53968L,53969L,53970L,53971L,53972L,53973L,53974L,
9878953975L,53976L,53977L,53978L,53979L,53980L,53981L,53982L,53983L,53984L,
9879053985L,53986L,53987L,53988L,53989L,53990L,53991L,53992L,53993L,53994L,
9879153995L,53996L,53997L,53998L,53999L,54000L,54001L,54002L,54003L,54004L,
9879254005L,54006L,54007L,54008L,54009L,54010L,54011L,54012L,54013L,54014L,
9879354015L,54016L,54017L,54018L,54019L,54020L,54021L,54022L,54023L,54024L,
9879454025L,54026L,54027L,54028L,54029L,54030L,54031L,54032L,54033L,54034L,
9879554035L,54036L,54037L,54038L,54039L,54040L,54041L,54042L,54043L,54044L,
9879654045L,54046L,54047L,54048L,54049L,54050L,54051L,54052L,54053L,54054L,
9879754055L,54056L,54057L,54058L,54059L,54060L,54061L,54062L,54063L,54064L,
9879854065L,54066L,54067L,54068L,54069L,54070L,54071L,54072L,54073L,54074L,
9879954075L,54076L,54077L,54078L,54079L,54080L,54081L,54082L,54083L,54084L,
9880054085L,54086L,54087L,54088L,54089L,54090L,54091L,54092L,54093L,54094L,
9880154095L,54096L,54097L,54098L,54099L,54100L,54101L,54102L,54103L,54104L,
9880254105L,54106L,54107L,54108L,54109L,54110L,54111L,54112L,54113L,54114L,
9880354115L,54116L,54117L,54118L,54119L,54120L,54121L,54122L,54123L,54124L,
9880454125L,54126L,54127L,54128L,54129L,54130L,54131L,54132L,54133L,54134L,
9880554135L,54136L,54137L,54138L,54139L,54140L,54141L,54142L,54143L,54144L,
9880654145L,54146L,54147L,54148L,54149L,54150L,54151L,54152L,54153L,54154L,
9880754155L,54156L,54157L,54158L,54159L,54160L,54161L,54162L,54163L,54164L,
9880854165L,54166L,54167L,54168L,54169L,54170L,54171L,54172L,54173L,54174L,
9880954175L,54176L,54177L,54178L,54179L,54180L,54181L,54182L,54183L,54184L,
9881054185L,54186L,54187L,54188L,54189L,54190L,54191L,54192L,54193L,54194L,
9881154195L,54196L,54197L,54198L,54199L,54200L,54201L,54202L,54203L,54204L,
9881254205L,54206L,54207L,54208L,54209L,54210L,54211L,54212L,54213L,54214L,
9881354215L,54216L,54217L,54218L,54219L,54220L,54221L,54222L,54223L,54224L,
9881454225L,54226L,54227L,54228L,54229L,54230L,54231L,54232L,54233L,54234L,
9881554235L,54236L,54237L,54238L,54239L,54240L,54241L,54242L,54243L,54244L,
9881654245L,54246L,54247L,54248L,54249L,54250L,54251L,54252L,54253L,54254L,
9881754255L,54256L,54257L,54258L,54259L,54260L,54261L,54262L,54263L,54264L,
9881854265L,54266L,54267L,54268L,54269L,54270L,54271L,54272L,54273L,54274L,
9881954275L,54276L,54277L,54278L,54279L,54280L,54281L,54282L,54283L,54284L,
9882054285L,54286L,54287L,54288L,54289L,54290L,54291L,54292L,54293L,54294L,
9882154295L,54296L,54297L,54298L,54299L,54300L,54301L,54302L,54303L,54304L,
9882254305L,54306L,54307L,54308L,54309L,54310L,54311L,54312L,54313L,54314L,
9882354315L,54316L,54317L,54318L,54319L,54320L,54321L,54322L,54323L,54324L,
9882454325L,54326L,54327L,54328L,54329L,54330L,54331L,54332L,54333L,54334L,
9882554335L,54336L,54337L,54338L,54339L,54340L,54341L,54342L,54343L,54344L,
9882654345L,54346L,54347L,54348L,54349L,54350L,54351L,54352L,54353L,54354L,
9882754355L,54356L,54357L,54358L,54359L,54360L,54361L,54362L,54363L,54364L,
9882854365L,54366L,54367L,54368L,54369L,54370L,54371L,54372L,54373L,54374L,
9882954375L,54376L,54377L,54378L,54379L,54380L,54381L,54382L,54383L,54384L,
9883054385L,54386L,54387L,54388L,54389L,54390L,54391L,54392L,54393L,54394L,
9883154395L,54396L,54397L,54398L,54399L,54400L,54401L,54402L,54403L,54404L,
9883254405L,54406L,54407L,54408L,54409L,54410L,54411L,54412L,54413L,54414L,
9883354415L,54416L,54417L,54418L,54419L,54420L,54421L,54422L,54423L,54424L,
9883454425L,54426L,54427L,54428L,54429L,54430L,54431L,54432L,54433L,54434L,
9883554435L,54436L,54437L,54438L,54439L,54440L,54441L,54442L,54443L,54444L,
9883654445L,54446L,54447L,54448L,54449L,54450L,54451L,54452L,54453L,54454L,
9883754455L,54456L,54457L,54458L,54459L,54460L,54461L,54462L,54463L,54464L,
9883854465L,54466L,54467L,54468L,54469L,54470L,54471L,54472L,54473L,54474L,
9883954475L,54476L,54477L,54478L,54479L,54480L,54481L,54482L,54483L,54484L,
9884054485L,54486L,54487L,54488L,54489L,54490L,54491L,54492L,54493L,54494L,
9884154495L,54496L,54497L,54498L,54499L,54500L,54501L,54502L,54503L,54504L,
9884254505L,54506L,54507L,54508L,54509L,54510L,54511L,54512L,54513L,54514L,
9884354515L,54516L,54517L,54518L,54519L,54520L,54521L,54522L,54523L,54524L,
9884454525L,54526L,54527L,54528L,54529L,54530L,54531L,54532L,54533L,54534L,
9884554535L,54536L,54537L,54538L,54539L,54540L,54541L,54542L,54543L,54544L,
9884654545L,54546L,54547L,54548L,54549L,54550L,54551L,54552L,54553L,54554L,
9884754555L,54556L,54557L,54558L,54559L,54560L,54561L,54562L,54563L,54564L,
9884854565L,54566L,54567L,54568L,54569L,54570L,54571L,54572L,54573L,54574L,
9884954575L,54576L,54577L,54578L,54579L,54580L,54581L,54582L,54583L,54584L,
9885054585L,54586L,54587L,54588L,54589L,54590L,54591L,54592L,54593L,54594L,
9885154595L,54596L,54597L,54598L,54599L,54600L,54601L,54602L,54603L,54604L,
9885254605L,54606L,54607L,54608L,54609L,54610L,54611L,54612L,54613L,54614L,
9885354615L,54616L,54617L,54618L,54619L,54620L,54621L,54622L,54623L,54624L,
9885454625L,54626L,54627L,54628L,54629L,54630L,54631L,54632L,54633L,54634L,
9885554635L,54636L,54637L,54638L,54639L,54640L,54641L,54642L,54643L,54644L,
9885654645L,54646L,54647L,54648L,54649L,54650L,54651L,54652L,54653L,54654L,
9885754655L,54656L,54657L,54658L,54659L,54660L,54661L,54662L,54663L,54664L,
9885854665L,54666L,54667L,54668L,54669L,54670L,54671L,54672L,54673L,54674L,
9885954675L,54676L,54677L,54678L,54679L,54680L,54681L,54682L,54683L,54684L,
9886054685L,54686L,54687L,54688L,54689L,54690L,54691L,54692L,54693L,54694L,
9886154695L,54696L,54697L,54698L,54699L,54700L,54701L,54702L,54703L,54704L,
9886254705L,54706L,54707L,54708L,54709L,54710L,54711L,54712L,54713L,54714L,
9886354715L,54716L,54717L,54718L,54719L,54720L,54721L,54722L,54723L,54724L,
9886454725L,54726L,54727L,54728L,54729L,54730L,54731L,54732L,54733L,54734L,
9886554735L,54736L,54737L,54738L,54739L,54740L,54741L,54742L,54743L,54744L,
9886654745L,54746L,54747L,54748L,54749L,54750L,54751L,54752L,54753L,54754L,
9886754755L,54756L,54757L,54758L,54759L,54760L,54761L,54762L,54763L,54764L,
9886854765L,54766L,54767L,54768L,54769L,54770L,54771L,54772L,54773L,54774L,
9886954775L,54776L,54777L,54778L,54779L,54780L,54781L,54782L,54783L,54784L,
9887054785L,54786L,54787L,54788L,54789L,54790L,54791L,54792L,54793L,54794L,
9887154795L,54796L,54797L,54798L,54799L,54800L,54801L,54802L,54803L,54804L,
9887254805L,54806L,54807L,54808L,54809L,54810L,54811L,54812L,54813L,54814L,
9887354815L,54816L,54817L,54818L,54819L,54820L,54821L,54822L,54823L,54824L,
9887454825L,54826L,54827L,54828L,54829L,54830L,54831L,54832L,54833L,54834L,
9887554835L,54836L,54837L,54838L,54839L,54840L,54841L,54842L,54843L,54844L,
9887654845L,54846L,54847L,54848L,54849L,54850L,54851L,54852L,54853L,54854L,
9887754855L,54856L,54857L,54858L,54859L,54860L,54861L,54862L,54863L,54864L,
9887854865L,54866L,54867L,54868L,54869L,54870L,54871L,54872L,54873L,54874L,
9887954875L,54876L,54877L,54878L,54879L,54880L,54881L,54882L,54883L,54884L,
9888054885L,54886L,54887L,54888L,54889L,54890L,54891L,54892L,54893L,54894L,
9888154895L,54896L,54897L,54898L,54899L,54900L,54901L,54902L,54903L,54904L,
9888254905L,54906L,54907L,54908L,54909L,54910L,54911L,54912L,54913L,54914L,
9888354915L,54916L,54917L,54918L,54919L,54920L,54921L,54922L,54923L,54924L,
9888454925L,54926L,54927L,54928L,54929L,54930L,54931L,54932L,54933L,54934L,
9888554935L,54936L,54937L,54938L,54939L,54940L,54941L,54942L,54943L,54944L,
9888654945L,54946L,54947L,54948L,54949L,54950L,54951L,54952L,54953L,54954L,
9888754955L,54956L,54957L,54958L,54959L,54960L,54961L,54962L,54963L,54964L,
9888854965L,54966L,54967L,54968L,54969L,54970L,54971L,54972L,54973L,54974L,
9888954975L,54976L,54977L,54978L,54979L,54980L,54981L,54982L,54983L,54984L,
9889054985L,54986L,54987L,54988L,54989L,54990L,54991L,54992L,54993L,54994L,
9889154995L,54996L,54997L,54998L,54999L,55000L,55001L,55002L,55003L,55004L,
9889255005L,55006L,55007L,55008L,55009L,55010L,55011L,55012L,55013L,55014L,
9889355015L,55016L,55017L,55018L,55019L,55020L,55021L,55022L,55023L,55024L,
9889455025L,55026L,55027L,55028L,55029L,55030L,55031L,55032L,55033L,55034L,
9889555035L,55036L,55037L,55038L,55039L,55040L,55041L,55042L,55043L,55044L,
9889655045L,55046L,55047L,55048L,55049L,55050L,55051L,55052L,55053L,55054L,
9889755055L,55056L,55057L,55058L,55059L,55060L,55061L,55062L,55063L,55064L,
9889855065L,55066L,55067L,55068L,55069L,55070L,55071L,55072L,55073L,55074L,
9889955075L,55076L,55077L,55078L,55079L,55080L,55081L,55082L,55083L,55084L,
9890055085L,55086L,55087L,55088L,55089L,55090L,55091L,55092L,55093L,55094L,
9890155095L,55096L,55097L,55098L,55099L,55100L,55101L,55102L,55103L,55104L,
9890255105L,55106L,55107L,55108L,55109L,55110L,55111L,55112L,55113L,55114L,
9890355115L,55116L,55117L,55118L,55119L,55120L,55121L,55122L,55123L,55124L,
9890455125L,55126L,55127L,55128L,55129L,55130L,55131L,55132L,55133L,55134L,
9890555135L,55136L,55137L,55138L,55139L,55140L,55141L,55142L,55143L,55144L,
9890655145L,55146L,55147L,55148L,55149L,55150L,55151L,55152L,55153L,55154L,
9890755155L,55156L,55157L,55158L,55159L,55160L,55161L,55162L,55163L,55164L,
9890855165L,55166L,55167L,55168L,55169L,55170L,55171L,55172L,55173L,55174L,
9890955175L,55176L,55177L,55178L,55179L,55180L,55181L,55182L,55183L,55184L,
9891055185L,55186L,55187L,55188L,55189L,55190L,55191L,55192L,55193L,55194L,
9891155195L,55196L,55197L,55198L,55199L,55200L,55201L,55202L,55203L,55204L,
9891255205L,55206L,55207L,55208L,55209L,55210L,55211L,55212L,55213L,55214L,
9891355215L,55216L,55217L,55218L,55219L,55220L,55221L,55222L,55223L,55224L,
9891455225L,55226L,55227L,55228L,55229L,55230L,55231L,55232L,55233L,55234L,
9891555235L,55236L,55237L,55238L,55239L,55240L,55241L,55242L,55243L,55244L,
9891655245L,55246L,55247L,55248L,55249L,55250L,55251L,55252L,55253L,55254L,
9891755255L,55256L,55257L,55258L,55259L,55260L,55261L,55262L,55263L,55264L,
9891855265L,55266L,55267L,55268L,55269L,55270L,55271L,55272L,55273L,55274L,
9891955275L,55276L,55277L,55278L,55279L,55280L,55281L,55282L,55283L,55284L,
9892055285L,55286L,55287L,55288L,55289L,55290L,55291L,55292L,55293L,55294L,
9892155295L,55296L,55297L,55298L,55299L,55300L,55301L,55302L,55303L,55304L,
9892255305L,55306L,55307L,55308L,55309L,55310L,55311L,55312L,55313L,55314L,
9892355315L,55316L,55317L,55318L,55319L,55320L,55321L,55322L,55323L,55324L,
9892455325L,55326L,55327L,55328L,55329L,55330L,55331L,55332L,55333L,55334L,
9892555335L,55336L,55337L,55338L,55339L,55340L,55341L,55342L,55343L,55344L,
9892655345L,55346L,55347L,55348L,55349L,55350L,55351L,55352L,55353L,55354L,
9892755355L,55356L,55357L,55358L,55359L,55360L,55361L,55362L,55363L,55364L,
9892855365L,55366L,55367L,55368L,55369L,55370L,55371L,55372L,55373L,55374L,
9892955375L,55376L,55377L,55378L,55379L,55380L,55381L,55382L,55383L,55384L,
9893055385L,55386L,55387L,55388L,55389L,55390L,55391L,55392L,55393L,55394L,
9893155395L,55396L,55397L,55398L,55399L,55400L,55401L,55402L,55403L,55404L,
9893255405L,55406L,55407L,55408L,55409L,55410L,55411L,55412L,55413L,55414L,
9893355415L,55416L,55417L,55418L,55419L,55420L,55421L,55422L,55423L,55424L,
9893455425L,55426L,55427L,55428L,55429L,55430L,55431L,55432L,55433L,55434L,
9893555435L,55436L,55437L,55438L,55439L,55440L,55441L,55442L,55443L,55444L,
9893655445L,55446L,55447L,55448L,55449L,55450L,55451L,55452L,55453L,55454L,
9893755455L,55456L,55457L,55458L,55459L,55460L,55461L,55462L,55463L,55464L,
9893855465L,55466L,55467L,55468L,55469L,55470L,55471L,55472L,55473L,55474L,
9893955475L,55476L,55477L,55478L,55479L,55480L,55481L,55482L,55483L,55484L,
9894055485L,55486L,55487L,55488L,55489L,55490L,55491L,55492L,55493L,55494L,
9894155495L,55496L,55497L,55498L,55499L,55500L,55501L,55502L,55503L,55504L,
9894255505L,55506L,55507L,55508L,55509L,55510L,55511L,55512L,55513L,55514L,
9894355515L,55516L,55517L,55518L,55519L,55520L,55521L,55522L,55523L,55524L,
9894455525L,55526L,55527L,55528L,55529L,55530L,55531L,55532L,55533L,55534L,
9894555535L,55536L,55537L,55538L,55539L,55540L,55541L,55542L,55543L,55544L,
9894655545L,55546L,55547L,55548L,55549L,55550L,55551L,55552L,55553L,55554L,
9894755555L,55556L,55557L,55558L,55559L,55560L,55561L,55562L,55563L,55564L,
9894855565L,55566L,55567L,55568L,55569L,55570L,55571L,55572L,55573L,55574L,
9894955575L,55576L,55577L,55578L,55579L,55580L,55581L,55582L,55583L,55584L,
9895055585L,55586L,55587L,55588L,55589L,55590L,55591L,55592L,55593L,55594L,
9895155595L,55596L,55597L,55598L,55599L,55600L,55601L,55602L,55603L,55604L,
9895255605L,55606L,55607L,55608L,55609L,55610L,55611L,55612L,55613L,55614L,
9895355615L,55616L,55617L,55618L,55619L,55620L,55621L,55622L,55623L,55624L,
9895455625L,55626L,55627L,55628L,55629L,55630L,55631L,55632L,55633L,55634L,
9895555635L,55636L,55637L,55638L,55639L,55640L,55641L,55642L,55643L,55644L,
9895655645L,55646L,55647L,55648L,55649L,55650L,55651L,55652L,55653L,55654L,
9895755655L,55656L,55657L,55658L,55659L,55660L,55661L,55662L,55663L,55664L,
9895855665L,55666L,55667L,55668L,55669L,55670L,55671L,55672L,55673L,55674L,
9895955675L,55676L,55677L,55678L,55679L,55680L,55681L,55682L,55683L,55684L,
9896055685L,55686L,55687L,55688L,55689L,55690L,55691L,55692L,55693L,55694L,
9896155695L,55696L,55697L,55698L,55699L,55700L,55701L,55702L,55703L,55704L,
9896255705L,55706L,55707L,55708L,55709L,55710L,55711L,55712L,55713L,55714L,
9896355715L,55716L,55717L,55718L,55719L,55720L,55721L,55722L,55723L,55724L,
9896455725L,55726L,55727L,55728L,55729L,55730L,55731L,55732L,55733L,55734L,
9896555735L,55736L,55737L,55738L,55739L,55740L,55741L,55742L,55743L,55744L,
9896655745L,55746L,55747L,55748L,55749L,55750L,55751L,55752L,55753L,55754L,
9896755755L,55756L,55757L,55758L,55759L,55760L,55761L,55762L,55763L,55764L,
9896855765L,55766L,55767L,55768L,55769L,55770L,55771L,55772L,55773L,55774L,
9896955775L,55776L,55777L,55778L,55779L,55780L,55781L,55782L,55783L,55784L,
9897055785L,55786L,55787L,55788L,55789L,55790L,55791L,55792L,55793L,55794L,
9897155795L,55796L,55797L,55798L,55799L,55800L,55801L,55802L,55803L,55804L,
9897255805L,55806L,55807L,55808L,55809L,55810L,55811L,55812L,55813L,55814L,
9897355815L,55816L,55817L,55818L,55819L,55820L,55821L,55822L,55823L,55824L,
9897455825L,55826L,55827L,55828L,55829L,55830L,55831L,55832L,55833L,55834L,
9897555835L,55836L,55837L,55838L,55839L,55840L,55841L,55842L,55843L,55844L,
9897655845L,55846L,55847L,55848L,55849L,55850L,55851L,55852L,55853L,55854L,
9897755855L,55856L,55857L,55858L,55859L,55860L,55861L,55862L,55863L,55864L,
9897855865L,55866L,55867L,55868L,55869L,55870L,55871L,55872L,55873L,55874L,
9897955875L,55876L,55877L,55878L,55879L,55880L,55881L,55882L,55883L,55884L,
9898055885L,55886L,55887L,55888L,55889L,55890L,55891L,55892L,55893L,55894L,
9898155895L,55896L,55897L,55898L,55899L,55900L,55901L,55902L,55903L,55904L,
9898255905L,55906L,55907L,55908L,55909L,55910L,55911L,55912L,55913L,55914L,
9898355915L,55916L,55917L,55918L,55919L,55920L,55921L,55922L,55923L,55924L,
9898455925L,55926L,55927L,55928L,55929L,55930L,55931L,55932L,55933L,55934L,
9898555935L,55936L,55937L,55938L,55939L,55940L,55941L,55942L,55943L,55944L,
9898655945L,55946L,55947L,55948L,55949L,55950L,55951L,55952L,55953L,55954L,
9898755955L,55956L,55957L,55958L,55959L,55960L,55961L,55962L,55963L,55964L,
9898855965L,55966L,55967L,55968L,55969L,55970L,55971L,55972L,55973L,55974L,
9898955975L,55976L,55977L,55978L,55979L,55980L,55981L,55982L,55983L,55984L,
9899055985L,55986L,55987L,55988L,55989L,55990L,55991L,55992L,55993L,55994L,
9899155995L,55996L,55997L,55998L,55999L,56000L,56001L,56002L,56003L,56004L,
9899256005L,56006L,56007L,56008L,56009L,56010L,56011L,56012L,56013L,56014L,
9899356015L,56016L,56017L,56018L,56019L,56020L,56021L,56022L,56023L,56024L,
9899456025L,56026L,56027L,56028L,56029L,56030L,56031L,56032L,56033L,56034L,
9899556035L,56036L,56037L,56038L,56039L,56040L,56041L,56042L,56043L,56044L,
9899656045L,56046L,56047L,56048L,56049L,56050L,56051L,56052L,56053L,56054L,
9899756055L,56056L,56057L,56058L,56059L,56060L,56061L,56062L,56063L,56064L,
9899856065L,56066L,56067L,56068L,56069L,56070L,56071L,56072L,56073L,56074L,
9899956075L,56076L,56077L,56078L,56079L,56080L,56081L,56082L,56083L,56084L,
9900056085L,56086L,56087L,56088L,56089L,56090L,56091L,56092L,56093L,56094L,
9900156095L,56096L,56097L,56098L,56099L,56100L,56101L,56102L,56103L,56104L,
9900256105L,56106L,56107L,56108L,56109L,56110L,56111L,56112L,56113L,56114L,
9900356115L,56116L,56117L,56118L,56119L,56120L,56121L,56122L,56123L,56124L,
9900456125L,56126L,56127L,56128L,56129L,56130L,56131L,56132L,56133L,56134L,
9900556135L,56136L,56137L,56138L,56139L,56140L,56141L,56142L,56143L,56144L,
9900656145L,56146L,56147L,56148L,56149L,56150L,56151L,56152L,56153L,56154L,
9900756155L,56156L,56157L,56158L,56159L,56160L,56161L,56162L,56163L,56164L,
9900856165L,56166L,56167L,56168L,56169L,56170L,56171L,56172L,56173L,56174L,
9900956175L,56176L,56177L,56178L,56179L,56180L,56181L,56182L,56183L,56184L,
9901056185L,56186L,56187L,56188L,56189L,56190L,56191L,56192L,56193L,56194L,
9901156195L,56196L,56197L,56198L,56199L,56200L,56201L,56202L,56203L,56204L,
9901256205L,56206L,56207L,56208L,56209L,56210L,56211L,56212L,56213L,56214L,
9901356215L,56216L,56217L,56218L,56219L,56220L,56221L,56222L,56223L,56224L,
9901456225L,56226L,56227L,56228L,56229L,56230L,56231L,56232L,56233L,56234L,
9901556235L,56236L,56237L,56238L,56239L,56240L,56241L,56242L,56243L,56244L,
9901656245L,56246L,56247L,56248L,56249L,56250L,56251L,56252L,56253L,56254L,
9901756255L,56256L,56257L,56258L,56259L,56260L,56261L,56262L,56263L,56264L,
9901856265L,56266L,56267L,56268L,56269L,56270L,56271L,56272L,56273L,56274L,
9901956275L,56276L,56277L,56278L,56279L,56280L,56281L,56282L,56283L,56284L,
9902056285L,56286L,56287L,56288L,56289L,56290L,56291L,56292L,56293L,56294L,
9902156295L,56296L,56297L,56298L,56299L,56300L,56301L,56302L,56303L,56304L,
9902256305L,56306L,56307L,56308L,56309L,56310L,56311L,56312L,56313L,56314L,
9902356315L,56316L,56317L,56318L,56319L,56320L,56321L,56322L,56323L,56324L,
9902456325L,56326L,56327L,56328L,56329L,56330L,56331L,56332L,56333L,56334L,
9902556335L,56336L,56337L,56338L,56339L,56340L,56341L,56342L,56343L,56344L,
9902656345L,56346L,56347L,56348L,56349L,56350L,56351L,56352L,56353L,56354L,
9902756355L,56356L,56357L,56358L,56359L,56360L,56361L,56362L,56363L,56364L,
9902856365L,56366L,56367L,56368L,56369L,56370L,56371L,56372L,56373L,56374L,
9902956375L,56376L,56377L,56378L,56379L,56380L,56381L,56382L,56383L,56384L,
9903056385L,56386L,56387L,56388L,56389L,56390L,56391L,56392L,56393L,56394L,
9903156395L,56396L,56397L,56398L,56399L,56400L,56401L,56402L,56403L,56404L,
9903256405L,56406L,56407L,56408L,56409L,56410L,56411L,56412L,56413L,56414L,
9903356415L,56416L,56417L,56418L,56419L,56420L,56421L,56422L,56423L,56424L,
9903456425L,56426L,56427L,56428L,56429L,56430L,56431L,56432L,56433L,56434L,
9903556435L,56436L,56437L,56438L,56439L,56440L,56441L,56442L,56443L,56444L,
9903656445L,56446L,56447L,56448L,56449L,56450L,56451L,56452L,56453L,56454L,
9903756455L,56456L,56457L,56458L,56459L,56460L,56461L,56462L,56463L,56464L,
9903856465L,56466L,56467L,56468L,56469L,56470L,56471L,56472L,56473L,56474L,
9903956475L,56476L,56477L,56478L,56479L,56480L,56481L,56482L,56483L,56484L,
9904056485L,56486L,56487L,56488L,56489L,56490L,56491L,56492L,56493L,56494L,
9904156495L,56496L,56497L,56498L,56499L,56500L,56501L,56502L,56503L,56504L,
9904256505L,56506L,56507L,56508L,56509L,56510L,56511L,56512L,56513L,56514L,
9904356515L,56516L,56517L,56518L,56519L,56520L,56521L,56522L,56523L,56524L,
9904456525L,56526L,56527L,56528L,56529L,56530L,56531L,56532L,56533L,56534L,
9904556535L,56536L,56537L,56538L,56539L,56540L,56541L,56542L,56543L,56544L,
9904656545L,56546L,56547L,56548L,56549L,56550L,56551L,56552L,56553L,56554L,
9904756555L,56556L,56557L,56558L,56559L,56560L,56561L,56562L,56563L,56564L,
9904856565L,56566L,56567L,56568L,56569L,56570L,56571L,56572L,56573L,56574L,
9904956575L,56576L,56577L,56578L,56579L,56580L,56581L,56582L,56583L,56584L,
9905056585L,56586L,56587L,56588L,56589L,56590L,56591L,56592L,56593L,56594L,
9905156595L,56596L,56597L,56598L,56599L,56600L,56601L,56602L,56603L,56604L,
9905256605L,56606L,56607L,56608L,56609L,56610L,56611L,56612L,56613L,56614L,
9905356615L,56616L,56617L,56618L,56619L,56620L,56621L,56622L,56623L,56624L,
9905456625L,56626L,56627L,56628L,56629L,56630L,56631L,56632L,56633L,56634L,
9905556635L,56636L,56637L,56638L,56639L,56640L,56641L,56642L,56643L,56644L,
9905656645L,56646L,56647L,56648L,56649L,56650L,56651L,56652L,56653L,56654L,
9905756655L,56656L,56657L,56658L,56659L,56660L,56661L,56662L,56663L,56664L,
9905856665L,56666L,56667L,56668L,56669L,56670L,56671L,56672L,56673L,56674L,
9905956675L,56676L,56677L,56678L,56679L,56680L,56681L,56682L,56683L,56684L,
9906056685L,56686L,56687L,56688L,56689L,56690L,56691L,56692L,56693L,56694L,
9906156695L,56696L,56697L,56698L,56699L,56700L,56701L,56702L,56703L,56704L,
9906256705L,56706L,56707L,56708L,56709L,56710L,56711L,56712L,56713L,56714L,
9906356715L,56716L,56717L,56718L,56719L,56720L,56721L,56722L,56723L,56724L,
9906456725L,56726L,56727L,56728L,56729L,56730L,56731L,56732L,56733L,56734L,
9906556735L,56736L,56737L,56738L,56739L,56740L,56741L,56742L,56743L,56744L,
9906656745L,56746L,56747L,56748L,56749L,56750L,56751L,56752L,56753L,56754L,
9906756755L,56756L,56757L,56758L,56759L,56760L,56761L,56762L,56763L,56764L,
9906856765L,56766L,56767L,56768L,56769L,56770L,56771L,56772L,56773L,56774L,
9906956775L,56776L,56777L,56778L,56779L,56780L,56781L,56782L,56783L,56784L,
9907056785L,56786L,56787L,56788L,56789L,56790L,56791L,56792L,56793L,56794L,
9907156795L,56796L,56797L,56798L,56799L,56800L,56801L,56802L,56803L,56804L,
9907256805L,56806L,56807L,56808L,56809L,56810L,56811L,56812L,56813L,56814L,
9907356815L,56816L,56817L,56818L,56819L,56820L,56821L,56822L,56823L,56824L,
9907456825L,56826L,56827L,56828L,56829L,56830L,56831L,56832L,56833L,56834L,
9907556835L,56836L,56837L,56838L,56839L,56840L,56841L,56842L,56843L,56844L,
9907656845L,56846L,56847L,56848L,56849L,56850L,56851L,56852L,56853L,56854L,
9907756855L,56856L,56857L,56858L,56859L,56860L,56861L,56862L,56863L,56864L,
9907856865L,56866L,56867L,56868L,56869L,56870L,56871L,56872L,56873L,56874L,
9907956875L,56876L,56877L,56878L,56879L,56880L,56881L,56882L,56883L,56884L,
9908056885L,56886L,56887L,56888L,56889L,56890L,56891L,56892L,56893L,56894L,
9908156895L,56896L,56897L,56898L,56899L,56900L,56901L,56902L,56903L,56904L,
9908256905L,56906L,56907L,56908L,56909L,56910L,56911L,56912L,56913L,56914L,
9908356915L,56916L,56917L,56918L,56919L,56920L,56921L,56922L,56923L,56924L,
9908456925L,56926L,56927L,56928L,56929L,56930L,56931L,56932L,56933L,56934L,
9908556935L,56936L,56937L,56938L,56939L,56940L,56941L,56942L,56943L,56944L,
9908656945L,56946L,56947L,56948L,56949L,56950L,56951L,56952L,56953L,56954L,
9908756955L,56956L,56957L,56958L,56959L,56960L,56961L,56962L,56963L,56964L,
9908856965L,56966L,56967L,56968L,56969L,56970L,56971L,56972L,56973L,56974L,
9908956975L,56976L,56977L,56978L,56979L,56980L,56981L,56982L,56983L,56984L,
9909056985L,56986L,56987L,56988L,56989L,56990L,56991L,56992L,56993L,56994L,
9909156995L,56996L,56997L,56998L,56999L,57000L,57001L,57002L,57003L,57004L,
9909257005L,57006L,57007L,57008L,57009L,57010L,57011L,57012L,57013L,57014L,
9909357015L,57016L,57017L,57018L,57019L,57020L,57021L,57022L,57023L,57024L,
9909457025L,57026L,57027L,57028L,57029L,57030L,57031L,57032L,57033L,57034L,
9909557035L,57036L,57037L,57038L,57039L,57040L,57041L,57042L,57043L,57044L,
9909657045L,57046L,57047L,57048L,57049L,57050L,57051L,57052L,57053L,57054L,
9909757055L,57056L,57057L,57058L,57059L,57060L,57061L,57062L,57063L,57064L,
9909857065L,57066L,57067L,57068L,57069L,57070L,57071L,57072L,57073L,57074L,
9909957075L,57076L,57077L,57078L,57079L,57080L,57081L,57082L,57083L,57084L,
9910057085L,57086L,57087L,57088L,57089L,57090L,57091L,57092L,57093L,57094L,
9910157095L,57096L,57097L,57098L,57099L,57100L,57101L,57102L,57103L,57104L,
9910257105L,57106L,57107L,57108L,57109L,57110L,57111L,57112L,57113L,57114L,
9910357115L,57116L,57117L,57118L,57119L,57120L,57121L,57122L,57123L,57124L,
9910457125L,57126L,57127L,57128L,57129L,57130L,57131L,57132L,57133L,57134L,
9910557135L,57136L,57137L,57138L,57139L,57140L,57141L,57142L,57143L,57144L,
9910657145L,57146L,57147L,57148L,57149L,57150L,57151L,57152L,57153L,57154L,
9910757155L,57156L,57157L,57158L,57159L,57160L,57161L,57162L,57163L,57164L,
9910857165L,57166L,57167L,57168L,57169L,57170L,57171L,57172L,57173L,57174L,
9910957175L,57176L,57177L,57178L,57179L,57180L,57181L,57182L,57183L,57184L,
9911057185L,57186L,57187L,57188L,57189L,57190L,57191L,57192L,57193L,57194L,
9911157195L,57196L,57197L,57198L,57199L,57200L,57201L,57202L,57203L,57204L,
9911257205L,57206L,57207L,57208L,57209L,57210L,57211L,57212L,57213L,57214L,
9911357215L,57216L,57217L,57218L,57219L,57220L,57221L,57222L,57223L,57224L,
9911457225L,57226L,57227L,57228L,57229L,57230L,57231L,57232L,57233L,57234L,
9911557235L,57236L,57237L,57238L,57239L,57240L,57241L,57242L,57243L,57244L,
9911657245L,57246L,57247L,57248L,57249L,57250L,57251L,57252L,57253L,57254L,
9911757255L,57256L,57257L,57258L,57259L,57260L,57261L,57262L,57263L,57264L,
9911857265L,57266L,57267L,57268L,57269L,57270L,57271L,57272L,57273L,57274L,
9911957275L,57276L,57277L,57278L,57279L,57280L,57281L,57282L,57283L,57284L,
9912057285L,57286L,57287L,57288L,57289L,57290L,57291L,57292L,57293L,57294L,
9912157295L,57296L,57297L,57298L,57299L,57300L,57301L,57302L,57303L,57304L,
9912257305L,57306L,57307L,57308L,57309L,57310L,57311L,57312L,57313L,57314L,
9912357315L,57316L,57317L,57318L,57319L,57320L,57321L,57322L,57323L,57324L,
9912457325L,57326L,57327L,57328L,57329L,57330L,57331L,57332L,57333L,57334L,
9912557335L,57336L,57337L,57338L,57339L,57340L,57341L,57342L,57343L,57344L,
9912657345L,57346L,57347L,57348L,57349L,57350L,57351L,57352L,57353L,57354L,
9912757355L,57356L,57357L,57358L,57359L,57360L,57361L,57362L,57363L,57364L,
9912857365L,57366L,57367L,57368L,57369L,57370L,57371L,57372L,57373L,57374L,
9912957375L,57376L,57377L,57378L,57379L,57380L,57381L,57382L,57383L,57384L,
9913057385L,57386L,57387L,57388L,57389L,57390L,57391L,57392L,57393L,57394L,
9913157395L,57396L,57397L,57398L,57399L,57400L,57401L,57402L,57403L,57404L,
9913257405L,57406L,57407L,57408L,57409L,57410L,57411L,57412L,57413L,57414L,
9913357415L,57416L,57417L,57418L,57419L,57420L,57421L,57422L,57423L,57424L,
9913457425L,57426L,57427L,57428L,57429L,57430L,57431L,57432L,57433L,57434L,
9913557435L,57436L,57437L,57438L,57439L,57440L,57441L,57442L,57443L,57444L,
9913657445L,57446L,57447L,57448L,57449L,57450L,57451L,57452L,57453L,57454L,
9913757455L,57456L,57457L,57458L,57459L,57460L,57461L,57462L,57463L,57464L,
9913857465L,57466L,57467L,57468L,57469L,57470L,57471L,57472L,57473L,57474L,
9913957475L,57476L,57477L,57478L,57479L,57480L,57481L,57482L,57483L,57484L,
9914057485L,57486L,57487L,57488L,57489L,57490L,57491L,57492L,57493L,57494L,
9914157495L,57496L,57497L,57498L,57499L,57500L,57501L,57502L,57503L,57504L,
9914257505L,57506L,57507L,57508L,57509L,57510L,57511L,57512L,57513L,57514L,
9914357515L,57516L,57517L,57518L,57519L,57520L,57521L,57522L,57523L,57524L,
9914457525L,57526L,57527L,57528L,57529L,57530L,57531L,57532L,57533L,57534L,
9914557535L,57536L,57537L,57538L,57539L,57540L,57541L,57542L,57543L,57544L,
9914657545L,57546L,57547L,57548L,57549L,57550L,57551L,57552L,57553L,57554L,
9914757555L,57556L,57557L,57558L,57559L,57560L,57561L,57562L,57563L,57564L,
9914857565L,57566L,57567L,57568L,57569L,57570L,57571L,57572L,57573L,57574L,
9914957575L,57576L,57577L,57578L,57579L,57580L,57581L,57582L,57583L,57584L,
9915057585L,57586L,57587L,57588L,57589L,57590L,57591L,57592L,57593L,57594L,
9915157595L,57596L,57597L,57598L,57599L,57600L,57601L,57602L,57603L,57604L,
9915257605L,57606L,57607L,57608L,57609L,57610L,57611L,57612L,57613L,57614L,
9915357615L,57616L,57617L,57618L,57619L,57620L,57621L,57622L,57623L,57624L,
9915457625L,57626L,57627L,57628L,57629L,57630L,57631L,57632L,57633L,57634L,
9915557635L,57636L,57637L,57638L,57639L,57640L,57641L,57642L,57643L,57644L,
9915657645L,57646L,57647L,57648L,57649L,57650L,57651L,57652L,57653L,57654L,
9915757655L,57656L,57657L,57658L,57659L,57660L,57661L,57662L,57663L,57664L,
9915857665L,57666L,57667L,57668L,57669L,57670L,57671L,57672L,57673L,57674L,
9915957675L,57676L,57677L,57678L,57679L,57680L,57681L,57682L,57683L,57684L,
9916057685L,57686L,57687L,57688L,57689L,57690L,57691L,57692L,57693L,57694L,
9916157695L,57696L,57697L,57698L,57699L,57700L,57701L,57702L,57703L,57704L,
9916257705L,57706L,57707L,57708L,57709L,57710L,57711L,57712L,57713L,57714L,
9916357715L,57716L,57717L,57718L,57719L,57720L,57721L,57722L,57723L,57724L,
9916457725L,57726L,57727L,57728L,57729L,57730L,57731L,57732L,57733L,57734L,
9916557735L,57736L,57737L,57738L,57739L,57740L,57741L,57742L,57743L,57744L,
9916657745L,57746L,57747L,57748L,57749L,57750L,57751L,57752L,57753L,57754L,
9916757755L,57756L,57757L,57758L,57759L,57760L,57761L,57762L,57763L,57764L,
9916857765L,57766L,57767L,57768L,57769L,57770L,57771L,57772L,57773L,57774L,
9916957775L,57776L,57777L,57778L,57779L,57780L,57781L,57782L,57783L,57784L,
9917057785L,57786L,57787L,57788L,57789L,57790L,57791L,57792L,57793L,57794L,
9917157795L,57796L,57797L,57798L,57799L,57800L,57801L,57802L,57803L,57804L,
9917257805L,57806L,57807L,57808L,57809L,57810L,57811L,57812L,57813L,57814L,
9917357815L,57816L,57817L,57818L,57819L,57820L,57821L,57822L,57823L,57824L,
9917457825L,57826L,57827L,57828L,57829L,57830L,57831L,57832L,57833L,57834L,
9917557835L,57836L,57837L,57838L,57839L,57840L,57841L,57842L,57843L,57844L,
9917657845L,57846L,57847L,57848L,57849L,57850L,57851L,57852L,57853L,57854L,
9917757855L,57856L,57857L,57858L,57859L,57860L,57861L,57862L,57863L,57864L,
9917857865L,57866L,57867L,57868L,57869L,57870L,57871L,57872L,57873L,57874L,
9917957875L,57876L,57877L,57878L,57879L,57880L,57881L,57882L,57883L,57884L,
9918057885L,57886L,57887L,57888L,57889L,57890L,57891L,57892L,57893L,57894L,
9918157895L,57896L,57897L,57898L,57899L,57900L,57901L,57902L,57903L,57904L,
9918257905L,57906L,57907L,57908L,57909L,57910L,57911L,57912L,57913L,57914L,
9918357915L,57916L,57917L,57918L,57919L,57920L,57921L,57922L,57923L,57924L,
9918457925L,57926L,57927L,57928L,57929L,57930L,57931L,57932L,57933L,57934L,
9918557935L,57936L,57937L,57938L,57939L,57940L,57941L,57942L,57943L,57944L,
9918657945L,57946L,57947L,57948L,57949L,57950L,57951L,57952L,57953L,57954L,
9918757955L,57956L,57957L,57958L,57959L,57960L,57961L,57962L,57963L,57964L,
9918857965L,57966L,57967L,57968L,57969L,57970L,57971L,57972L,57973L,57974L,
9918957975L,57976L,57977L,57978L,57979L,57980L,57981L,57982L,57983L,57984L,
9919057985L,57986L,57987L,57988L,57989L,57990L,57991L,57992L,57993L,57994L,
9919157995L,57996L,57997L,57998L,57999L,58000L,58001L,58002L,58003L,58004L,
9919258005L,58006L,58007L,58008L,58009L,58010L,58011L,58012L,58013L,58014L,
9919358015L,58016L,58017L,58018L,58019L,58020L,58021L,58022L,58023L,58024L,
9919458025L,58026L,58027L,58028L,58029L,58030L,58031L,58032L,58033L,58034L,
9919558035L,58036L,58037L,58038L,58039L,58040L,58041L,58042L,58043L,58044L,
9919658045L,58046L,58047L,58048L,58049L,58050L,58051L,58052L,58053L,58054L,
9919758055L,58056L,58057L,58058L,58059L,58060L,58061L,58062L,58063L,58064L,
9919858065L,58066L,58067L,58068L,58069L,58070L,58071L,58072L,58073L,58074L,
9919958075L,58076L,58077L,58078L,58079L,58080L,58081L,58082L,58083L,58084L,
9920058085L,58086L,58087L,58088L,58089L,58090L,58091L,58092L,58093L,58094L,
9920158095L,58096L,58097L,58098L,58099L,58100L,58101L,58102L,58103L,58104L,
9920258105L,58106L,58107L,58108L,58109L,58110L,58111L,58112L,58113L,58114L,
9920358115L,58116L,58117L,58118L,58119L,58120L,58121L,58122L,58123L,58124L,
9920458125L,58126L,58127L,58128L,58129L,58130L,58131L,58132L,58133L,58134L,
9920558135L,58136L,58137L,58138L,58139L,58140L,58141L,58142L,58143L,58144L,
9920658145L,58146L,58147L,58148L,58149L,58150L,58151L,58152L,58153L,58154L,
9920758155L,58156L,58157L,58158L,58159L,58160L,58161L,58162L,58163L,58164L,
9920858165L,58166L,58167L,58168L,58169L,58170L,58171L,58172L,58173L,58174L,
9920958175L,58176L,58177L,58178L,58179L,58180L,58181L,58182L,58183L,58184L,
9921058185L,58186L,58187L,58188L,58189L,58190L,58191L,58192L,58193L,58194L,
9921158195L,58196L,58197L,58198L,58199L,58200L,58201L,58202L,58203L,58204L,
9921258205L,58206L,58207L,58208L,58209L,58210L,58211L,58212L,58213L,58214L,
9921358215L,58216L,58217L,58218L,58219L,58220L,58221L,58222L,58223L,58224L,
9921458225L,58226L,58227L,58228L,58229L,58230L,58231L,58232L,58233L,58234L,
9921558235L,58236L,58237L,58238L,58239L,58240L,58241L,58242L,58243L,58244L,
9921658245L,58246L,58247L,58248L,58249L,58250L,58251L,58252L,58253L,58254L,
9921758255L,58256L,58257L,58258L,58259L,58260L,58261L,58262L,58263L,58264L,
9921858265L,58266L,58267L,58268L,58269L,58270L,58271L,58272L,58273L,58274L,
9921958275L,58276L,58277L,58278L,58279L,58280L,58281L,58282L,58283L,58284L,
9922058285L,58286L,58287L,58288L,58289L,58290L,58291L,58292L,58293L,58294L,
9922158295L,58296L,58297L,58298L,58299L,58300L,58301L,58302L,58303L,58304L,
9922258305L,58306L,58307L,58308L,58309L,58310L,58311L,58312L,58313L,58314L,
9922358315L,58316L,58317L,58318L,58319L,58320L,58321L,58322L,58323L,58324L,
9922458325L,58326L,58327L,58328L,58329L,58330L,58331L,58332L,58333L,58334L,
9922558335L,58336L,58337L,58338L,58339L,58340L,58341L,58342L,58343L,58344L,
9922658345L,58346L,58347L,58348L,58349L,58350L,58351L,58352L,58353L,58354L,
9922758355L,58356L,58357L,58358L,58359L,58360L,58361L,58362L,58363L,58364L,
9922858365L,58366L,58367L,58368L,58369L,58370L,58371L,58372L,58373L,58374L,
9922958375L,58376L,58377L,58378L,58379L,58380L,58381L,58382L,58383L,58384L,
9923058385L,58386L,58387L,58388L,58389L,58390L,58391L,58392L,58393L,58394L,
9923158395L,58396L,58397L,58398L,58399L,58400L,58401L,58402L,58403L,58404L,
9923258405L,58406L,58407L,58408L,58409L,58410L,58411L,58412L,58413L,58414L,
9923358415L,58416L,58417L,58418L,58419L,58420L,58421L,58422L,58423L,58424L,
9923458425L,58426L,58427L,58428L,58429L,58430L,58431L,58432L,58433L,58434L,
9923558435L,58436L,58437L,58438L,58439L,58440L,58441L,58442L,58443L,58444L,
9923658445L,58446L,58447L,58448L,58449L,58450L,58451L,58452L,58453L,58454L,
9923758455L,58456L,58457L,58458L,58459L,58460L,58461L,58462L,58463L,58464L,
9923858465L,58466L,58467L,58468L,58469L,58470L,58471L,58472L,58473L,58474L,
9923958475L,58476L,58477L,58478L,58479L,58480L,58481L,58482L,58483L,58484L,
9924058485L,58486L,58487L,58488L,58489L,58490L,58491L,58492L,58493L,58494L,
9924158495L,58496L,58497L,58498L,58499L,58500L,58501L,58502L,58503L,58504L,
9924258505L,58506L,58507L,58508L,58509L,58510L,58511L,58512L,58513L,58514L,
9924358515L,58516L,58517L,58518L,58519L,58520L,58521L,58522L,58523L,58524L,
9924458525L,58526L,58527L,58528L,58529L,58530L,58531L,58532L,58533L,58534L,
9924558535L,58536L,58537L,58538L,58539L,58540L,58541L,58542L,58543L,58544L,
9924658545L,58546L,58547L,58548L,58549L,58550L,58551L,58552L,58553L,58554L,
9924758555L,58556L,58557L,58558L,58559L,58560L,58561L,58562L,58563L,58564L,
9924858565L,58566L,58567L,58568L,58569L,58570L,58571L,58572L,58573L,58574L,
9924958575L,58576L,58577L,58578L,58579L,58580L,58581L,58582L,58583L,58584L,
9925058585L,58586L,58587L,58588L,58589L,58590L,58591L,58592L,58593L,58594L,
9925158595L,58596L,58597L,58598L,58599L,58600L,58601L,58602L,58603L,58604L,
9925258605L,58606L,58607L,58608L,58609L,58610L,58611L,58612L,58613L,58614L,
9925358615L,58616L,58617L,58618L,58619L,58620L,58621L,58622L,58623L,58624L,
9925458625L,58626L,58627L,58628L,58629L,58630L,58631L,58632L,58633L,58634L,
9925558635L,58636L,58637L,58638L,58639L,58640L,58641L,58642L,58643L,58644L,
9925658645L,58646L,58647L,58648L,58649L,58650L,58651L,58652L,58653L,58654L,
9925758655L,58656L,58657L,58658L,58659L,58660L,58661L,58662L,58663L,58664L,
9925858665L,58666L,58667L,58668L,58669L,58670L,58671L,58672L,58673L,58674L,
9925958675L,58676L,58677L,58678L,58679L,58680L,58681L,58682L,58683L,58684L,
9926058685L,58686L,58687L,58688L,58689L,58690L,58691L,58692L,58693L,58694L,
9926158695L,58696L,58697L,58698L,58699L,58700L,58701L,58702L,58703L,58704L,
9926258705L,58706L,58707L,58708L,58709L,58710L,58711L,58712L,58713L,58714L,
9926358715L,58716L,58717L,58718L,58719L,58720L,58721L,58722L,58723L,58724L,
9926458725L,58726L,58727L,58728L,58729L,58730L,58731L,58732L,58733L,58734L,
9926558735L,58736L,58737L,58738L,58739L,58740L,58741L,58742L,58743L,58744L,
9926658745L,58746L,58747L,58748L,58749L,58750L,58751L,58752L,58753L,58754L,
9926758755L,58756L,58757L,58758L,58759L,58760L,58761L,58762L,58763L,58764L,
9926858765L,58766L,58767L,58768L,58769L,58770L,58771L,58772L,58773L,58774L,
9926958775L,58776L,58777L,58778L,58779L,58780L,58781L,58782L,58783L,58784L,
9927058785L,58786L,58787L,58788L,58789L,58790L,58791L,58792L,58793L,58794L,
9927158795L,58796L,58797L,58798L,58799L,58800L,58801L,58802L,58803L,58804L,
9927258805L,58806L,58807L,58808L,58809L,58810L,58811L,58812L,58813L,58814L,
9927358815L,58816L,58817L,58818L,58819L,58820L,58821L,58822L,58823L,58824L,
9927458825L,58826L,58827L,58828L,58829L,58830L,58831L,58832L,58833L,58834L,
9927558835L,58836L,58837L,58838L,58839L,58840L,58841L,58842L,58843L,58844L,
9927658845L,58846L,58847L,58848L,58849L,58850L,58851L,58852L,58853L,58854L,
9927758855L,58856L,58857L,58858L,58859L,58860L,58861L,58862L,58863L,58864L,
9927858865L,58866L,58867L,58868L,58869L,58870L,58871L,58872L,58873L,58874L,
9927958875L,58876L,58877L,58878L,58879L,58880L,58881L,58882L,58883L,58884L,
9928058885L,58886L,58887L,58888L,58889L,58890L,58891L,58892L,58893L,58894L,
9928158895L,58896L,58897L,58898L,58899L,58900L,58901L,58902L,58903L,58904L,
9928258905L,58906L,58907L,58908L,58909L,58910L,58911L,58912L,58913L,58914L,
9928358915L,58916L,58917L,58918L,58919L,58920L,58921L,58922L,58923L,58924L,
9928458925L,58926L,58927L,58928L,58929L,58930L,58931L,58932L,58933L,58934L,
9928558935L,58936L,58937L,58938L,58939L,58940L,58941L,58942L,58943L,58944L,
9928658945L,58946L,58947L,58948L,58949L,58950L,58951L,58952L,58953L,58954L,
9928758955L,58956L,58957L,58958L,58959L,58960L,58961L,58962L,58963L,58964L,
9928858965L,58966L,58967L,58968L,58969L,58970L,58971L,58972L,58973L,58974L,
9928958975L,58976L,58977L,58978L,58979L,58980L,58981L,58982L,58983L,58984L,
9929058985L,58986L,58987L,58988L,58989L,58990L,58991L,58992L,58993L,58994L,
9929158995L,58996L,58997L,58998L,58999L,59000L,59001L,59002L,59003L,59004L,
9929259005L,59006L,59007L,59008L,59009L,59010L,59011L,59012L,59013L,59014L,
9929359015L,59016L,59017L,59018L,59019L,59020L,59021L,59022L,59023L,59024L,
9929459025L,59026L,59027L,59028L,59029L,59030L,59031L,59032L,59033L,59034L,
9929559035L,59036L,59037L,59038L,59039L,59040L,59041L,59042L,59043L,59044L,
9929659045L,59046L,59047L,59048L,59049L,59050L,59051L,59052L,59053L,59054L,
9929759055L,59056L,59057L,59058L,59059L,59060L,59061L,59062L,59063L,59064L,
9929859065L,59066L,59067L,59068L,59069L,59070L,59071L,59072L,59073L,59074L,
9929959075L,59076L,59077L,59078L,59079L,59080L,59081L,59082L,59083L,59084L,
9930059085L,59086L,59087L,59088L,59089L,59090L,59091L,59092L,59093L,59094L,
9930159095L,59096L,59097L,59098L,59099L,59100L,59101L,59102L,59103L,59104L,
9930259105L,59106L,59107L,59108L,59109L,59110L,59111L,59112L,59113L,59114L,
9930359115L,59116L,59117L,59118L,59119L,59120L,59121L,59122L,59123L,59124L,
9930459125L,59126L,59127L,59128L,59129L,59130L,59131L,59132L,59133L,59134L,
9930559135L,59136L,59137L,59138L,59139L,59140L,59141L,59142L,59143L,59144L,
9930659145L,59146L,59147L,59148L,59149L,59150L,59151L,59152L,59153L,59154L,
9930759155L,59156L,59157L,59158L,59159L,59160L,59161L,59162L,59163L,59164L,
9930859165L,59166L,59167L,59168L,59169L,59170L,59171L,59172L,59173L,59174L,
9930959175L,59176L,59177L,59178L,59179L,59180L,59181L,59182L,59183L,59184L,
9931059185L,59186L,59187L,59188L,59189L,59190L,59191L,59192L,59193L,59194L,
9931159195L,59196L,59197L,59198L,59199L,59200L,59201L,59202L,59203L,59204L,
9931259205L,59206L,59207L,59208L,59209L,59210L,59211L,59212L,59213L,59214L,
9931359215L,59216L,59217L,59218L,59219L,59220L,59221L,59222L,59223L,59224L,
9931459225L,59226L,59227L,59228L,59229L,59230L,59231L,59232L,59233L,59234L,
9931559235L,59236L,59237L,59238L,59239L,59240L,59241L,59242L,59243L,59244L,
9931659245L,59246L,59247L,59248L,59249L,59250L,59251L,59252L,59253L,59254L,
9931759255L,59256L,59257L,59258L,59259L,59260L,59261L,59262L,59263L,59264L,
9931859265L,59266L,59267L,59268L,59269L,59270L,59271L,59272L,59273L,59274L,
9931959275L,59276L,59277L,59278L,59279L,59280L,59281L,59282L,59283L,59284L,
9932059285L,59286L,59287L,59288L,59289L,59290L,59291L,59292L,59293L,59294L,
9932159295L,59296L,59297L,59298L,59299L,59300L,59301L,59302L,59303L,59304L,
9932259305L,59306L,59307L,59308L,59309L,59310L,59311L,59312L,59313L,59314L,
9932359315L,59316L,59317L,59318L,59319L,59320L,59321L,59322L,59323L,59324L,
9932459325L,59326L,59327L,59328L,59329L,59330L,59331L,59332L,59333L,59334L,
9932559335L,59336L,59337L,59338L,59339L,59340L,59341L,59342L,59343L,59344L,
9932659345L,59346L,59347L,59348L,59349L,59350L,59351L,59352L,59353L,59354L,
9932759355L,59356L,59357L,59358L,59359L,59360L,59361L,59362L,59363L,59364L,
9932859365L,59366L,59367L,59368L,59369L,59370L,59371L,59372L,59373L,59374L,
9932959375L,59376L,59377L,59378L,59379L,59380L,59381L,59382L,59383L,59384L,
9933059385L,59386L,59387L,59388L,59389L,59390L,59391L,59392L,59393L,59394L,
9933159395L,59396L,59397L,59398L,59399L,59400L,59401L,59402L,59403L,59404L,
9933259405L,59406L,59407L,59408L,59409L,59410L,59411L,59412L,59413L,59414L,
9933359415L,59416L,59417L,59418L,59419L,59420L,59421L,59422L,59423L,59424L,
9933459425L,59426L,59427L,59428L,59429L,59430L,59431L,59432L,59433L,59434L,
9933559435L,59436L,59437L,59438L,59439L,59440L,59441L,59442L,59443L,59444L,
9933659445L,59446L,59447L,59448L,59449L,59450L,59451L,59452L,59453L,59454L,
9933759455L,59456L,59457L,59458L,59459L,59460L,59461L,59462L,59463L,59464L,
9933859465L,59466L,59467L,59468L,59469L,59470L,59471L,59472L,59473L,59474L,
9933959475L,59476L,59477L,59478L,59479L,59480L,59481L,59482L,59483L,59484L,
9934059485L,59486L,59487L,59488L,59489L,59490L,59491L,59492L,59493L,59494L,
9934159495L,59496L,59497L,59498L,59499L,59500L,59501L,59502L,59503L,59504L,
9934259505L,59506L,59507L,59508L,59509L,59510L,59511L,59512L,59513L,59514L,
9934359515L,59516L,59517L,59518L,59519L,59520L,59521L,59522L,59523L,59524L,
9934459525L,59526L,59527L,59528L,59529L,59530L,59531L,59532L,59533L,59534L,
9934559535L,59536L,59537L,59538L,59539L,59540L,59541L,59542L,59543L,59544L,
9934659545L,59546L,59547L,59548L,59549L,59550L,59551L,59552L,59553L,59554L,
9934759555L,59556L,59557L,59558L,59559L,59560L,59561L,59562L,59563L,59564L,
9934859565L,59566L,59567L,59568L,59569L,59570L,59571L,59572L,59573L,59574L,
9934959575L,59576L,59577L,59578L,59579L,59580L,59581L,59582L,59583L,59584L,
9935059585L,59586L,59587L,59588L,59589L,59590L,59591L,59592L,59593L,59594L,
9935159595L,59596L,59597L,59598L,59599L,59600L,59601L,59602L,59603L,59604L,
9935259605L,59606L,59607L,59608L,59609L,59610L,59611L,59612L,59613L,59614L,
9935359615L,59616L,59617L,59618L,59619L,59620L,59621L,59622L,59623L,59624L,
9935459625L,59626L,59627L,59628L,59629L,59630L,59631L,59632L,59633L,59634L,
9935559635L,59636L,59637L,59638L,59639L,59640L,59641L,59642L,59643L,59644L,
9935659645L,59646L,59647L,59648L,59649L,59650L,59651L,59652L,59653L,59654L,
9935759655L,59656L,59657L,59658L,59659L,59660L,59661L,59662L,59663L,59664L,
9935859665L,59666L,59667L,59668L,59669L,59670L,59671L,59672L,59673L,59674L,
9935959675L,59676L,59677L,59678L,59679L,59680L,59681L,59682L,59683L,59684L,
9936059685L,59686L,59687L,59688L,59689L,59690L,59691L,59692L,59693L,59694L,
9936159695L,59696L,59697L,59698L,59699L,59700L,59701L,59702L,59703L,59704L,
9936259705L,59706L,59707L,59708L,59709L,59710L,59711L,59712L,59713L,59714L,
9936359715L,59716L,59717L,59718L,59719L,59720L,59721L,59722L,59723L,59724L,
9936459725L,59726L,59727L,59728L,59729L,59730L,59731L,59732L,59733L,59734L,
9936559735L,59736L,59737L,59738L,59739L,59740L,59741L,59742L,59743L,59744L,
9936659745L,59746L,59747L,59748L,59749L,59750L,59751L,59752L,59753L,59754L,
9936759755L,59756L,59757L,59758L,59759L,59760L,59761L,59762L,59763L,59764L,
9936859765L,59766L,59767L,59768L,59769L,59770L,59771L,59772L,59773L,59774L,
9936959775L,59776L,59777L,59778L,59779L,59780L,59781L,59782L,59783L,59784L,
9937059785L,59786L,59787L,59788L,59789L,59790L,59791L,59792L,59793L,59794L,
9937159795L,59796L,59797L,59798L,59799L,59800L,59801L,59802L,59803L,59804L,
9937259805L,59806L,59807L,59808L,59809L,59810L,59811L,59812L,59813L,59814L,
9937359815L,59816L,59817L,59818L,59819L,59820L,59821L,59822L,59823L,59824L,
9937459825L,59826L,59827L,59828L,59829L,59830L,59831L,59832L,59833L,59834L,
9937559835L,59836L,59837L,59838L,59839L,59840L,59841L,59842L,59843L,59844L,
9937659845L,59846L,59847L,59848L,59849L,59850L,59851L,59852L,59853L,59854L,
9937759855L,59856L,59857L,59858L,59859L,59860L,59861L,59862L,59863L,59864L,
9937859865L,59866L,59867L,59868L,59869L,59870L,59871L,59872L,59873L,59874L,
9937959875L,59876L,59877L,59878L,59879L,59880L,59881L,59882L,59883L,59884L,
9938059885L,59886L,59887L,59888L,59889L,59890L,59891L,59892L,59893L,59894L,
9938159895L,59896L,59897L,59898L,59899L,59900L,59901L,59902L,59903L,59904L,
9938259905L,59906L,59907L,59908L,59909L,59910L,59911L,59912L,59913L,59914L,
9938359915L,59916L,59917L,59918L,59919L,59920L,59921L,59922L,59923L,59924L,
9938459925L,59926L,59927L,59928L,59929L,59930L,59931L,59932L,59933L,59934L,
9938559935L,59936L,59937L,59938L,59939L,59940L,59941L,59942L,59943L,59944L,
9938659945L,59946L,59947L,59948L,59949L,59950L,59951L,59952L,59953L,59954L,
9938759955L,59956L,59957L,59958L,59959L,59960L,59961L,59962L,59963L,59964L,
9938859965L,59966L,59967L,59968L,59969L,59970L,59971L,59972L,59973L,59974L,
9938959975L,59976L,59977L,59978L,59979L,59980L,59981L,59982L,59983L,59984L,
9939059985L,59986L,59987L,59988L,59989L,59990L,59991L,59992L,59993L,59994L,
9939159995L,59996L,59997L,59998L,59999L,60000L,60001L,60002L,60003L,60004L,
9939260005L,60006L,60007L,60008L,60009L,60010L,60011L,60012L,60013L,60014L,
9939360015L,60016L,60017L,60018L,60019L,60020L,60021L,60022L,60023L,60024L,
9939460025L,60026L,60027L,60028L,60029L,60030L,60031L,60032L,60033L,60034L,
9939560035L,60036L,60037L,60038L,60039L,60040L,60041L,60042L,60043L,60044L,
9939660045L,60046L,60047L,60048L,60049L,60050L,60051L,60052L,60053L,60054L,
9939760055L,60056L,60057L,60058L,60059L,60060L,60061L,60062L,60063L,60064L,
9939860065L,60066L,60067L,60068L,60069L,60070L,60071L,60072L,60073L,60074L,
9939960075L,60076L,60077L,60078L,60079L,60080L,60081L,60082L,60083L,60084L,
9940060085L,60086L,60087L,60088L,60089L,60090L,60091L,60092L,60093L,60094L,
9940160095L,60096L,60097L,60098L,60099L,60100L,60101L,60102L,60103L,60104L,
9940260105L,60106L,60107L,60108L,60109L,60110L,60111L,60112L,60113L,60114L,
9940360115L,60116L,60117L,60118L,60119L,60120L,60121L,60122L,60123L,60124L,
9940460125L,60126L,60127L,60128L,60129L,60130L,60131L,60132L,60133L,60134L,
9940560135L,60136L,60137L,60138L,60139L,60140L,60141L,60142L,60143L,60144L,
9940660145L,60146L,60147L,60148L,60149L,60150L,60151L,60152L,60153L,60154L,
9940760155L,60156L,60157L,60158L,60159L,60160L,60161L,60162L,60163L,60164L,
9940860165L,60166L,60167L,60168L,60169L,60170L,60171L,60172L,60173L,60174L,
9940960175L,60176L,60177L,60178L,60179L,60180L,60181L,60182L,60183L,60184L,
9941060185L,60186L,60187L,60188L,60189L,60190L,60191L,60192L,60193L,60194L,
9941160195L,60196L,60197L,60198L,60199L,60200L,60201L,60202L,60203L,60204L,
9941260205L,60206L,60207L,60208L,60209L,60210L,60211L,60212L,60213L,60214L,
9941360215L,60216L,60217L,60218L,60219L,60220L,60221L,60222L,60223L,60224L,
9941460225L,60226L,60227L,60228L,60229L,60230L,60231L,60232L,60233L,60234L,
9941560235L,60236L,60237L,60238L,60239L,60240L,60241L,60242L,60243L,60244L,
9941660245L,60246L,60247L,60248L,60249L,60250L,60251L,60252L,60253L,60254L,
9941760255L,60256L,60257L,60258L,60259L,60260L,60261L,60262L,60263L,60264L,
9941860265L,60266L,60267L,60268L,60269L,60270L,60271L,60272L,60273L,60274L,
9941960275L,60276L,60277L,60278L,60279L,60280L,60281L,60282L,60283L,60284L,
9942060285L,60286L,60287L,60288L,60289L,60290L,60291L,60292L,60293L,60294L,
9942160295L,60296L,60297L,60298L,60299L,60300L,60301L,60302L,60303L,60304L,
9942260305L,60306L,60307L,60308L,60309L,60310L,60311L,60312L,60313L,60314L,
9942360315L,60316L,60317L,60318L,60319L,60320L,60321L,60322L,60323L,60324L,
9942460325L,60326L,60327L,60328L,60329L,60330L,60331L,60332L,60333L,60334L,
9942560335L,60336L,60337L,60338L,60339L,60340L,60341L,60342L,60343L,60344L,
9942660345L,60346L,60347L,60348L,60349L,60350L,60351L,60352L,60353L,60354L,
9942760355L,60356L,60357L,60358L,60359L,60360L,60361L,60362L,60363L,60364L,
9942860365L,60366L,60367L,60368L,60369L,60370L,60371L,60372L,60373L,60374L,
9942960375L,60376L,60377L,60378L,60379L,60380L,60381L,60382L,60383L,60384L,
9943060385L,60386L,60387L,60388L,60389L,60390L,60391L,60392L,60393L,60394L,
9943160395L,60396L,60397L,60398L,60399L,60400L,60401L,60402L,60403L,60404L,
9943260405L,60406L,60407L,60408L,60409L,60410L,60411L,60412L,60413L,60414L,
9943360415L,60416L,60417L,60418L,60419L,60420L,60421L,60422L,60423L,60424L,
9943460425L,60426L,60427L,60428L,60429L,60430L,60431L,60432L,60433L,60434L,
9943560435L,60436L,60437L,60438L,60439L,60440L,60441L,60442L,60443L,60444L,
9943660445L,60446L,60447L,60448L,60449L,60450L,60451L,60452L,60453L,60454L,
9943760455L,60456L,60457L,60458L,60459L,60460L,60461L,60462L,60463L,60464L,
9943860465L,60466L,60467L,60468L,60469L,60470L,60471L,60472L,60473L,60474L,
9943960475L,60476L,60477L,60478L,60479L,60480L,60481L,60482L,60483L,60484L,
9944060485L,60486L,60487L,60488L,60489L,60490L,60491L,60492L,60493L,60494L,
9944160495L,60496L,60497L,60498L,60499L,60500L,60501L,60502L,60503L,60504L,
9944260505L,60506L,60507L,60508L,60509L,60510L,60511L,60512L,60513L,60514L,
9944360515L,60516L,60517L,60518L,60519L,60520L,60521L,60522L,60523L,60524L,
9944460525L,60526L,60527L,60528L,60529L,60530L,60531L,60532L,60533L,60534L,
9944560535L,60536L,60537L,60538L,60539L,60540L,60541L,60542L,60543L,60544L,
9944660545L,60546L,60547L,60548L,60549L,60550L,60551L,60552L,60553L,60554L,
9944760555L,60556L,60557L,60558L,60559L,60560L,60561L,60562L,60563L,60564L,
9944860565L,60566L,60567L,60568L,60569L,60570L,60571L,60572L,60573L,60574L,
9944960575L,60576L,60577L,60578L,60579L,60580L,60581L,60582L,60583L,60584L,
9945060585L,60586L,60587L,60588L,60589L,60590L,60591L,60592L,60593L,60594L,
9945160595L,60596L,60597L,60598L,60599L,60600L,60601L,60602L,60603L,60604L,
9945260605L,60606L,60607L,60608L,60609L,60610L,60611L,60612L,60613L,60614L,
9945360615L,60616L,60617L,60618L,60619L,60620L,60621L,60622L,60623L,60624L,
9945460625L,60626L,60627L,60628L,60629L,60630L,60631L,60632L,60633L,60634L,
9945560635L,60636L,60637L,60638L,60639L,60640L,60641L,60642L,60643L,60644L,
9945660645L,60646L,60647L,60648L,60649L,60650L,60651L,60652L,60653L,60654L,
9945760655L,60656L,60657L,60658L,60659L,60660L,60661L,60662L,60663L,60664L,
9945860665L,60666L,60667L,60668L,60669L,60670L,60671L,60672L,60673L,60674L,
9945960675L,60676L,60677L,60678L,60679L,60680L,60681L,60682L,60683L,60684L,
9946060685L,60686L,60687L,60688L,60689L,60690L,60691L,60692L,60693L,60694L,
9946160695L,60696L,60697L,60698L,60699L,60700L,60701L,60702L,60703L,60704L,
9946260705L,60706L,60707L,60708L,60709L,60710L,60711L,60712L,60713L,60714L,
9946360715L,60716L,60717L,60718L,60719L,60720L,60721L,60722L,60723L,60724L,
9946460725L,60726L,60727L,60728L,60729L,60730L,60731L,60732L,60733L,60734L,
9946560735L,60736L,60737L,60738L,60739L,60740L,60741L,60742L,60743L,60744L,
9946660745L,60746L,60747L,60748L,60749L,60750L,60751L,60752L,60753L,60754L,
9946760755L,60756L,60757L,60758L,60759L,60760L,60761L,60762L,60763L,60764L,
9946860765L,60766L,60767L,60768L,60769L,60770L,60771L,60772L,60773L,60774L,
9946960775L,60776L,60777L,60778L,60779L,60780L,60781L,60782L,60783L,60784L,
9947060785L,60786L,60787L,60788L,60789L,60790L,60791L,60792L,60793L,60794L,
9947160795L,60796L,60797L,60798L,60799L,60800L,60801L,60802L,60803L,60804L,
9947260805L,60806L,60807L,60808L,60809L,60810L,60811L,60812L,60813L,60814L,
9947360815L,60816L,60817L,60818L,60819L,60820L,60821L,60822L,60823L,60824L,
9947460825L,60826L,60827L,60828L,60829L,60830L,60831L,60832L,60833L,60834L,
9947560835L,60836L,60837L,60838L,60839L,60840L,60841L,60842L,60843L,60844L,
9947660845L,60846L,60847L,60848L,60849L,60850L,60851L,60852L,60853L,60854L,
9947760855L,60856L,60857L,60858L,60859L,60860L,60861L,60862L,60863L,60864L,
9947860865L,60866L,60867L,60868L,60869L,60870L,60871L,60872L,60873L,60874L,
9947960875L,60876L,60877L,60878L,60879L,60880L,60881L,60882L,60883L,60884L,
9948060885L,60886L,60887L,60888L,60889L,60890L,60891L,60892L,60893L,60894L,
9948160895L,60896L,60897L,60898L,60899L,60900L,60901L,60902L,60903L,60904L,
9948260905L,60906L,60907L,60908L,60909L,60910L,60911L,60912L,60913L,60914L,
9948360915L,60916L,60917L,60918L,60919L,60920L,60921L,60922L,60923L,60924L,
9948460925L,60926L,60927L,60928L,60929L,60930L,60931L,60932L,60933L,60934L,
9948560935L,60936L,60937L,60938L,60939L,60940L,60941L,60942L,60943L,60944L,
9948660945L,60946L,60947L,60948L,60949L,60950L,60951L,60952L,60953L,60954L,
9948760955L,60956L,60957L,60958L,60959L,60960L,60961L,60962L,60963L,60964L,
9948860965L,60966L,60967L,60968L,60969L,60970L,60971L,60972L,60973L,60974L,
9948960975L,60976L,60977L,60978L,60979L,60980L,60981L,60982L,60983L,60984L,
9949060985L,60986L,60987L,60988L,60989L,60990L,60991L,60992L,60993L,60994L,
9949160995L,60996L,60997L,60998L,60999L,61000L,61001L,61002L,61003L,61004L,
9949261005L,61006L,61007L,61008L,61009L,61010L,61011L,61012L,61013L,61014L,
9949361015L,61016L,61017L,61018L,61019L,61020L,61021L,61022L,61023L,61024L,
9949461025L,61026L,61027L,61028L,61029L,61030L,61031L,61032L,61033L,61034L,
9949561035L,61036L,61037L,61038L,61039L,61040L,61041L,61042L,61043L,61044L,
9949661045L,61046L,61047L,61048L,61049L,61050L,61051L,61052L,61053L,61054L,
9949761055L,61056L,61057L,61058L,61059L,61060L,61061L,61062L,61063L,61064L,
9949861065L,61066L,61067L,61068L,61069L,61070L,61071L,61072L,61073L,61074L,
9949961075L,61076L,61077L,61078L,61079L,61080L,61081L,61082L,61083L,61084L,
9950061085L,61086L,61087L,61088L,61089L,61090L,61091L,61092L,61093L,61094L,
9950161095L,61096L,61097L,61098L,61099L,61100L,61101L,61102L,61103L,61104L,
9950261105L,61106L,61107L,61108L,61109L,61110L,61111L,61112L,61113L,61114L,
9950361115L,61116L,61117L,61118L,61119L,61120L,61121L,61122L,61123L,61124L,
9950461125L,61126L,61127L,61128L,61129L,61130L,61131L,61132L,61133L,61134L,
9950561135L,61136L,61137L,61138L,61139L,61140L,61141L,61142L,61143L,61144L,
9950661145L,61146L,61147L,61148L,61149L,61150L,61151L,61152L,61153L,61154L,
9950761155L,61156L,61157L,61158L,61159L,61160L,61161L,61162L,61163L,61164L,
9950861165L,61166L,61167L,61168L,61169L,61170L,61171L,61172L,61173L,61174L,
9950961175L,61176L,61177L,61178L,61179L,61180L,61181L,61182L,61183L,61184L,
9951061185L,61186L,61187L,61188L,61189L,61190L,61191L,61192L,61193L,61194L,
9951161195L,61196L,61197L,61198L,61199L,61200L,61201L,61202L,61203L,61204L,
9951261205L,61206L,61207L,61208L,61209L,61210L,61211L,61212L,61213L,61214L,
9951361215L,61216L,61217L,61218L,61219L,61220L,61221L,61222L,61223L,61224L,
9951461225L,61226L,61227L,61228L,61229L,61230L,61231L,61232L,61233L,61234L,
9951561235L,61236L,61237L,61238L,61239L,61240L,61241L,61242L,61243L,61244L,
9951661245L,61246L,61247L,61248L,61249L,61250L,61251L,61252L,61253L,61254L,
9951761255L,61256L,61257L,61258L,61259L,61260L,61261L,61262L,61263L,61264L,
9951861265L,61266L,61267L,61268L,61269L,61270L,61271L,61272L,61273L,61274L,
9951961275L,61276L,61277L,61278L,61279L,61280L,61281L,61282L,61283L,61284L,
9952061285L,61286L,61287L,61288L,61289L,61290L,61291L,61292L,61293L,61294L,
9952161295L,61296L,61297L,61298L,61299L,61300L,61301L,61302L,61303L,61304L,
9952261305L,61306L,61307L,61308L,61309L,61310L,61311L,61312L,61313L,61314L,
9952361315L,61316L,61317L,61318L,61319L,61320L,61321L,61322L,61323L,61324L,
9952461325L,61326L,61327L,61328L,61329L,61330L,61331L,61332L,61333L,61334L,
9952561335L,61336L,61337L,61338L,61339L,61340L,61341L,61342L,61343L,61344L,
9952661345L,61346L,61347L,61348L,61349L,61350L,61351L,61352L,61353L,61354L,
9952761355L,61356L,61357L,61358L,61359L,61360L,61361L,61362L,61363L,61364L,
9952861365L,61366L,61367L,61368L,61369L,61370L,61371L,61372L,61373L,61374L,
9952961375L,61376L,61377L,61378L,61379L,61380L,61381L,61382L,61383L,61384L,
9953061385L,61386L,61387L,61388L,61389L,61390L,61391L,61392L,61393L,61394L,
9953161395L,61396L,61397L,61398L,61399L,61400L,61401L,61402L,61403L,61404L,
9953261405L,61406L,61407L,61408L,61409L,61410L,61411L,61412L,61413L,61414L,
9953361415L,61416L,61417L,61418L,61419L,61420L,61421L,61422L,61423L,61424L,
9953461425L,61426L,61427L,61428L,61429L,61430L,61431L,61432L,61433L,61434L,
9953561435L,61436L,61437L,61438L,61439L,61440L,61441L,61442L,61443L,61444L,
9953661445L,61446L,61447L,61448L,61449L,61450L,61451L,61452L,61453L,61454L,
9953761455L,61456L,61457L,61458L,61459L,61460L,61461L,61462L,61463L,61464L,
9953861465L,61466L,61467L,61468L,61469L,61470L,61471L,61472L,61473L,61474L,
9953961475L,61476L,61477L,61478L,61479L,61480L,61481L,61482L,61483L,61484L,
9954061485L,61486L,61487L,61488L,61489L,61490L,61491L,61492L,61493L,61494L,
9954161495L,61496L,61497L,61498L,61499L,61500L,61501L,61502L,61503L,61504L,
9954261505L,61506L,61507L,61508L,61509L,61510L,61511L,61512L,61513L,61514L,
9954361515L,61516L,61517L,61518L,61519L,61520L,61521L,61522L,61523L,61524L,
9954461525L,61526L,61527L,61528L,61529L,61530L,61531L,61532L,61533L,61534L,
9954561535L,61536L,61537L,61538L,61539L,61540L,61541L,61542L,61543L,61544L,
9954661545L,61546L,61547L,61548L,61549L,61550L,61551L,61552L,61553L,61554L,
9954761555L,61556L,61557L,61558L,61559L,61560L,61561L,61562L,61563L,61564L,
9954861565L,61566L,61567L,61568L,61569L,61570L,61571L,61572L,61573L,61574L,
9954961575L,61576L,61577L,61578L,61579L,61580L,61581L,61582L,61583L,61584L,
9955061585L,61586L,61587L,61588L,61589L,61590L,61591L,61592L,61593L,61594L,
9955161595L,61596L,61597L,61598L,61599L,61600L,61601L,61602L,61603L,61604L,
9955261605L,61606L,61607L,61608L,61609L,61610L,61611L,61612L,61613L,61614L,
9955361615L,61616L,61617L,61618L,61619L,61620L,61621L,61622L,61623L,61624L,
9955461625L,61626L,61627L,61628L,61629L,61630L,61631L,61632L,61633L,61634L,
9955561635L,61636L,61637L,61638L,61639L,61640L,61641L,61642L,61643L,61644L,
9955661645L,61646L,61647L,61648L,61649L,61650L,61651L,61652L,61653L,61654L,
9955761655L,61656L,61657L,61658L,61659L,61660L,61661L,61662L,61663L,61664L,
9955861665L,61666L,61667L,61668L,61669L,61670L,61671L,61672L,61673L,61674L,
9955961675L,61676L,61677L,61678L,61679L,61680L,61681L,61682L,61683L,61684L,
9956061685L,61686L,61687L,61688L,61689L,61690L,61691L,61692L,61693L,61694L,
9956161695L,61696L,61697L,61698L,61699L,61700L,61701L,61702L,61703L,61704L,
9956261705L,61706L,61707L,61708L,61709L,61710L,61711L,61712L,61713L,61714L,
9956361715L,61716L,61717L,61718L,61719L,61720L,61721L,61722L,61723L,61724L,
9956461725L,61726L,61727L,61728L,61729L,61730L,61731L,61732L,61733L,61734L,
9956561735L,61736L,61737L,61738L,61739L,61740L,61741L,61742L,61743L,61744L,
9956661745L,61746L,61747L,61748L,61749L,61750L,61751L,61752L,61753L,61754L,
9956761755L,61756L,61757L,61758L,61759L,61760L,61761L,61762L,61763L,61764L,
9956861765L,61766L,61767L,61768L,61769L,61770L,61771L,61772L,61773L,61774L,
9956961775L,61776L,61777L,61778L,61779L,61780L,61781L,61782L,61783L,61784L,
9957061785L,61786L,61787L,61788L,61789L,61790L,61791L,61792L,61793L,61794L,
9957161795L,61796L,61797L,61798L,61799L,61800L,61801L,61802L,61803L,61804L,
9957261805L,61806L,61807L,61808L,61809L,61810L,61811L,61812L,61813L,61814L,
9957361815L,61816L,61817L,61818L,61819L,61820L,61821L,61822L,61823L,61824L,
9957461825L,61826L,61827L,61828L,61829L,61830L,61831L,61832L,61833L,61834L,
9957561835L,61836L,61837L,61838L,61839L,61840L,61841L,61842L,61843L,61844L,
9957661845L,61846L,61847L,61848L,61849L,61850L,61851L,61852L,61853L,61854L,
9957761855L,61856L,61857L,61858L,61859L,61860L,61861L,61862L,61863L,61864L,
9957861865L,61866L,61867L,61868L,61869L,61870L,61871L,61872L,61873L,61874L,
9957961875L,61876L,61877L,61878L,61879L,61880L,61881L,61882L,61883L,61884L,
9958061885L,61886L,61887L,61888L,61889L,61890L,61891L,61892L,61893L,61894L,
9958161895L,61896L,61897L,61898L,61899L,61900L,61901L,61902L,61903L,61904L,
9958261905L,61906L,61907L,61908L,61909L,61910L,61911L,61912L,61913L,61914L,
9958361915L,61916L,61917L,61918L,61919L,61920L,61921L,61922L,61923L,61924L,
9958461925L,61926L,61927L,61928L,61929L,61930L,61931L,61932L,61933L,61934L,
9958561935L,61936L,61937L,61938L,61939L,61940L,61941L,61942L,61943L,61944L,
9958661945L,61946L,61947L,61948L,61949L,61950L,61951L,61952L,61953L,61954L,
9958761955L,61956L,61957L,61958L,61959L,61960L,61961L,61962L,61963L,61964L,
9958861965L,61966L,61967L,61968L,61969L,61970L,61971L,61972L,61973L,61974L,
9958961975L,61976L,61977L,61978L,61979L,61980L,61981L,61982L,61983L,61984L,
9959061985L,61986L,61987L,61988L,61989L,61990L,61991L,61992L,61993L,61994L,
9959161995L,61996L,61997L,61998L,61999L,62000L,62001L,62002L,62003L,62004L,
9959262005L,62006L,62007L,62008L,62009L,62010L,62011L,62012L,62013L,62014L,
9959362015L,62016L,62017L,62018L,62019L,62020L,62021L,62022L,62023L,62024L,
9959462025L,62026L,62027L,62028L,62029L,62030L,62031L,62032L,62033L,62034L,
9959562035L,62036L,62037L,62038L,62039L,62040L,62041L,62042L,62043L,62044L,
9959662045L,62046L,62047L,62048L,62049L,62050L,62051L,62052L,62053L,62054L,
9959762055L,62056L,62057L,62058L,62059L,62060L,62061L,62062L,62063L,62064L,
9959862065L,62066L,62067L,62068L,62069L,62070L,62071L,62072L,62073L,62074L,
9959962075L,62076L,62077L,62078L,62079L,62080L,62081L,62082L,62083L,62084L,
9960062085L,62086L,62087L,62088L,62089L,62090L,62091L,62092L,62093L,62094L,
9960162095L,62096L,62097L,62098L,62099L,62100L,62101L,62102L,62103L,62104L,
9960262105L,62106L,62107L,62108L,62109L,62110L,62111L,62112L,62113L,62114L,
9960362115L,62116L,62117L,62118L,62119L,62120L,62121L,62122L,62123L,62124L,
9960462125L,62126L,62127L,62128L,62129L,62130L,62131L,62132L,62133L,62134L,
9960562135L,62136L,62137L,62138L,62139L,62140L,62141L,62142L,62143L,62144L,
9960662145L,62146L,62147L,62148L,62149L,62150L,62151L,62152L,62153L,62154L,
9960762155L,62156L,62157L,62158L,62159L,62160L,62161L,62162L,62163L,62164L,
9960862165L,62166L,62167L,62168L,62169L,62170L,62171L,62172L,62173L,62174L,
9960962175L,62176L,62177L,62178L,62179L,62180L,62181L,62182L,62183L,62184L,
9961062185L,62186L,62187L,62188L,62189L,62190L,62191L,62192L,62193L,62194L,
9961162195L,62196L,62197L,62198L,62199L,62200L,62201L,62202L,62203L,62204L,
9961262205L,62206L,62207L,62208L,62209L,62210L,62211L,62212L,62213L,62214L,
9961362215L,62216L,62217L,62218L,62219L,62220L,62221L,62222L,62223L,62224L,
9961462225L,62226L,62227L,62228L,62229L,62230L,62231L,62232L,62233L,62234L,
9961562235L,62236L,62237L,62238L,62239L,62240L,62241L,62242L,62243L,62244L,
9961662245L,62246L,62247L,62248L,62249L,62250L,62251L,62252L,62253L,62254L,
9961762255L,62256L,62257L,62258L,62259L,62260L,62261L,62262L,62263L,62264L,
9961862265L,62266L,62267L,62268L,62269L,62270L,62271L,62272L,62273L,62274L,
9961962275L,62276L,62277L,62278L,62279L,62280L,62281L,62282L,62283L,62284L,
9962062285L,62286L,62287L,62288L,62289L,62290L,62291L,62292L,62293L,62294L,
9962162295L,62296L,62297L,62298L,62299L,62300L,62301L,62302L,62303L,62304L,
9962262305L,62306L,62307L,62308L,62309L,62310L,62311L,62312L,62313L,62314L,
9962362315L,62316L,62317L,62318L,62319L,62320L,62321L,62322L,62323L,62324L,
9962462325L,62326L,62327L,62328L,62329L,62330L,62331L,62332L,62333L,62334L,
9962562335L,62336L,62337L,62338L,62339L,62340L,62341L,62342L,62343L,62344L,
9962662345L,62346L,62347L,62348L,62349L,62350L,62351L,62352L,62353L,62354L,
9962762355L,62356L,62357L,62358L,62359L,62360L,62361L,62362L,62363L,62364L,
9962862365L,62366L,62367L,62368L,62369L,62370L,62371L,62372L,62373L,62374L,
9962962375L,62376L,62377L,62378L,62379L,62380L,62381L,62382L,62383L,62384L,
9963062385L,62386L,62387L,62388L,62389L,62390L,62391L,62392L,62393L,62394L,
9963162395L,62396L,62397L,62398L,62399L,62400L,62401L,62402L,62403L,62404L,
9963262405L,62406L,62407L,62408L,62409L,62410L,62411L,62412L,62413L,62414L,
9963362415L,62416L,62417L,62418L,62419L,62420L,62421L,62422L,62423L,62424L,
9963462425L,62426L,62427L,62428L,62429L,62430L,62431L,62432L,62433L,62434L,
9963562435L,62436L,62437L,62438L,62439L,62440L,62441L,62442L,62443L,62444L,
9963662445L,62446L,62447L,62448L,62449L,62450L,62451L,62452L,62453L,62454L,
9963762455L,62456L,62457L,62458L,62459L,62460L,62461L,62462L,62463L,62464L,
9963862465L,62466L,62467L,62468L,62469L,62470L,62471L,62472L,62473L,62474L,
9963962475L,62476L,62477L,62478L,62479L,62480L,62481L,62482L,62483L,62484L,
9964062485L,62486L,62487L,62488L,62489L,62490L,62491L,62492L,62493L,62494L,
9964162495L,62496L,62497L,62498L,62499L,62500L,62501L,62502L,62503L,62504L,
9964262505L,62506L,62507L,62508L,62509L,62510L,62511L,62512L,62513L,62514L,
9964362515L,62516L,62517L,62518L,62519L,62520L,62521L,62522L,62523L,62524L,
9964462525L,62526L,62527L,62528L,62529L,62530L,62531L,62532L,62533L,62534L,
9964562535L,62536L,62537L,62538L,62539L,62540L,62541L,62542L,62543L,62544L,
9964662545L,62546L,62547L,62548L,62549L,62550L,62551L,62552L,62553L,62554L,
9964762555L,62556L,62557L,62558L,62559L,62560L,62561L,62562L,62563L,62564L,
9964862565L,62566L,62567L,62568L,62569L,62570L,62571L,62572L,62573L,62574L,
9964962575L,62576L,62577L,62578L,62579L,62580L,62581L,62582L,62583L,62584L,
9965062585L,62586L,62587L,62588L,62589L,62590L,62591L,62592L,62593L,62594L,
9965162595L,62596L,62597L,62598L,62599L,62600L,62601L,62602L,62603L,62604L,
9965262605L,62606L,62607L,62608L,62609L,62610L,62611L,62612L,62613L,62614L,
9965362615L,62616L,62617L,62618L,62619L,62620L,62621L,62622L,62623L,62624L,
9965462625L,62626L,62627L,62628L,62629L,62630L,62631L,62632L,62633L,62634L,
9965562635L,62636L,62637L,62638L,62639L,62640L,62641L,62642L,62643L,62644L,
9965662645L,62646L,62647L,62648L,62649L,62650L,62651L,62652L,62653L,62654L,
9965762655L,62656L,62657L,62658L,62659L,62660L,62661L,62662L,62663L,62664L,
9965862665L,62666L,62667L,62668L,62669L,62670L,62671L,62672L,62673L,62674L,
9965962675L,62676L,62677L,62678L,62679L,62680L,62681L,62682L,62683L,62684L,
9966062685L,62686L,62687L,62688L,62689L,62690L,62691L,62692L,62693L,62694L,
9966162695L,62696L,62697L,62698L,62699L,62700L,62701L,62702L,62703L,62704L,
9966262705L,62706L,62707L,62708L,62709L,62710L,62711L,62712L,62713L,62714L,
9966362715L,62716L,62717L,62718L,62719L,62720L,62721L,62722L,62723L,62724L,
9966462725L,62726L,62727L,62728L,62729L,62730L,62731L,62732L,62733L,62734L,
9966562735L,62736L,62737L,62738L,62739L,62740L,62741L,62742L,62743L,62744L,
9966662745L,62746L,62747L,62748L,62749L,62750L,62751L,62752L,62753L,62754L,
9966762755L,62756L,62757L,62758L,62759L,62760L,62761L,62762L,62763L,62764L,
9966862765L,62766L,62767L,62768L,62769L,62770L,62771L,62772L,62773L,62774L,
9966962775L,62776L,62777L,62778L,62779L,62780L,62781L,62782L,62783L,62784L,
9967062785L,62786L,62787L,62788L,62789L,62790L,62791L,62792L,62793L,62794L,
9967162795L,62796L,62797L,62798L,62799L,62800L,62801L,62802L,62803L,62804L,
9967262805L,62806L,62807L,62808L,62809L,62810L,62811L,62812L,62813L,62814L,
9967362815L,62816L,62817L,62818L,62819L,62820L,62821L,62822L,62823L,62824L,
9967462825L,62826L,62827L,62828L,62829L,62830L,62831L,62832L,62833L,62834L,
9967562835L,62836L,62837L,62838L,62839L,62840L,62841L,62842L,62843L,62844L,
9967662845L,62846L,62847L,62848L,62849L,62850L,62851L,62852L,62853L,62854L,
9967762855L,62856L,62857L,62858L,62859L,62860L,62861L,62862L,62863L,62864L,
9967862865L,62866L,62867L,62868L,62869L,62870L,62871L,62872L,62873L,62874L,
9967962875L,62876L,62877L,62878L,62879L,62880L,62881L,62882L,62883L,62884L,
9968062885L,62886L,62887L,62888L,62889L,62890L,62891L,62892L,62893L,62894L,
9968162895L,62896L,62897L,62898L,62899L,62900L,62901L,62902L,62903L,62904L,
9968262905L,62906L,62907L,62908L,62909L,62910L,62911L,62912L,62913L,62914L,
9968362915L,62916L,62917L,62918L,62919L,62920L,62921L,62922L,62923L,62924L,
9968462925L,62926L,62927L,62928L,62929L,62930L,62931L,62932L,62933L,62934L,
9968562935L,62936L,62937L,62938L,62939L,62940L,62941L,62942L,62943L,62944L,
9968662945L,62946L,62947L,62948L,62949L,62950L,62951L,62952L,62953L,62954L,
9968762955L,62956L,62957L,62958L,62959L,62960L,62961L,62962L,62963L,62964L,
9968862965L,62966L,62967L,62968L,62969L,62970L,62971L,62972L,62973L,62974L,
9968962975L,62976L,62977L,62978L,62979L,62980L,62981L,62982L,62983L,62984L,
9969062985L,62986L,62987L,62988L,62989L,62990L,62991L,62992L,62993L,62994L,
9969162995L,62996L,62997L,62998L,62999L,63000L,63001L,63002L,63003L,63004L,
9969263005L,63006L,63007L,63008L,63009L,63010L,63011L,63012L,63013L,63014L,
9969363015L,63016L,63017L,63018L,63019L,63020L,63021L,63022L,63023L,63024L,
9969463025L,63026L,63027L,63028L,63029L,63030L,63031L,63032L,63033L,63034L,
9969563035L,63036L,63037L,63038L,63039L,63040L,63041L,63042L,63043L,63044L,
9969663045L,63046L,63047L,63048L,63049L,63050L,63051L,63052L,63053L,63054L,
9969763055L,63056L,63057L,63058L,63059L,63060L,63061L,63062L,63063L,63064L,
9969863065L,63066L,63067L,63068L,63069L,63070L,63071L,63072L,63073L,63074L,
9969963075L,63076L,63077L,63078L,63079L,63080L,63081L,63082L,63083L,63084L,
9970063085L,63086L,63087L,63088L,63089L,63090L,63091L,63092L,63093L,63094L,
9970163095L,63096L,63097L,63098L,63099L,63100L,63101L,63102L,63103L,63104L,
9970263105L,63106L,63107L,63108L,63109L,63110L,63111L,63112L,63113L,63114L,
9970363115L,63116L,63117L,63118L,63119L,63120L,63121L,63122L,63123L,63124L,
9970463125L,63126L,63127L,63128L,63129L,63130L,63131L,63132L,63133L,63134L,
9970563135L,63136L,63137L,63138L,63139L,63140L,63141L,63142L,63143L,63144L,
9970663145L,63146L,63147L,63148L,63149L,63150L,63151L,63152L,63153L,63154L,
9970763155L,63156L,63157L,63158L,63159L,63160L,63161L,63162L,63163L,63164L,
9970863165L,63166L,63167L,63168L,63169L,63170L,63171L,63172L,63173L,63174L,
9970963175L,63176L,63177L,63178L,63179L,63180L,63181L,63182L,63183L,63184L,
9971063185L,63186L,63187L,63188L,63189L,63190L,63191L,63192L,63193L,63194L,
9971163195L,63196L,63197L,63198L,63199L,63200L,63201L,63202L,63203L,63204L,
9971263205L,63206L,63207L,63208L,63209L,63210L,63211L,63212L,63213L,63214L,
9971363215L,63216L,63217L,63218L,63219L,63220L,63221L,63222L,63223L,63224L,
9971463225L,63226L,63227L,63228L,63229L,63230L,63231L,63232L,63233L,63234L,
9971563235L,63236L,63237L,63238L,63239L,63240L,63241L,63242L,63243L,63244L,
9971663245L,63246L,63247L,63248L,63249L,63250L,63251L,63252L,63253L,63254L,
9971763255L,63256L,63257L,63258L,63259L,63260L,63261L,63262L,63263L,63264L,
9971863265L,63266L,63267L,63268L,63269L,63270L,63271L,63272L,63273L,63274L,
9971963275L,63276L,63277L,63278L,63279L,63280L,63281L,63282L,63283L,63284L,
9972063285L,63286L,63287L,63288L,63289L,63290L,63291L,63292L,63293L,63294L,
9972163295L,63296L,63297L,63298L,63299L,63300L,63301L,63302L,63303L,63304L,
9972263305L,63306L,63307L,63308L,63309L,63310L,63311L,63312L,63313L,63314L,
9972363315L,63316L,63317L,63318L,63319L,63320L,63321L,63322L,63323L,63324L,
9972463325L,63326L,63327L,63328L,63329L,63330L,63331L,63332L,63333L,63334L,
9972563335L,63336L,63337L,63338L,63339L,63340L,63341L,63342L,63343L,63344L,
9972663345L,63346L,63347L,63348L,63349L,63350L,63351L,63352L,63353L,63354L,
9972763355L,63356L,63357L,63358L,63359L,63360L,63361L,63362L,63363L,63364L,
9972863365L,63366L,63367L,63368L,63369L,63370L,63371L,63372L,63373L,63374L,
9972963375L,63376L,63377L,63378L,63379L,63380L,63381L,63382L,63383L,63384L,
9973063385L,63386L,63387L,63388L,63389L,63390L,63391L,63392L,63393L,63394L,
9973163395L,63396L,63397L,63398L,63399L,63400L,63401L,63402L,63403L,63404L,
9973263405L,63406L,63407L,63408L,63409L,63410L,63411L,63412L,63413L,63414L,
9973363415L,63416L,63417L,63418L,63419L,63420L,63421L,63422L,63423L,63424L,
9973463425L,63426L,63427L,63428L,63429L,63430L,63431L,63432L,63433L,63434L,
9973563435L,63436L,63437L,63438L,63439L,63440L,63441L,63442L,63443L,63444L,
9973663445L,63446L,63447L,63448L,63449L,63450L,63451L,63452L,63453L,63454L,
9973763455L,63456L,63457L,63458L,63459L,63460L,63461L,63462L,63463L,63464L,
9973863465L,63466L,63467L,63468L,63469L,63470L,63471L,63472L,63473L,63474L,
9973963475L,63476L,63477L,63478L,63479L,63480L,63481L,63482L,63483L,63484L,
9974063485L,63486L,63487L,63488L,63489L,63490L,63491L,63492L,63493L,63494L,
9974163495L,63496L,63497L,63498L,63499L,63500L,63501L,63502L,63503L,63504L,
9974263505L,63506L,63507L,63508L,63509L,63510L,63511L,63512L,63513L,63514L,
9974363515L,63516L,63517L,63518L,63519L,63520L,63521L,63522L,63523L,63524L,
9974463525L,63526L,63527L,63528L,63529L,63530L,63531L,63532L,63533L,63534L,
9974563535L,63536L,63537L,63538L,63539L,63540L,63541L,63542L,63543L,63544L,
9974663545L,63546L,63547L,63548L,63549L,63550L,63551L,63552L,63553L,63554L,
9974763555L,63556L,63557L,63558L,63559L,63560L,63561L,63562L,63563L,63564L,
9974863565L,63566L,63567L,63568L,63569L,63570L,63571L,63572L,63573L,63574L,
9974963575L,63576L,63577L,63578L,63579L,63580L,63581L,63582L,63583L,63584L,
9975063585L,63586L,63587L,63588L,63589L,63590L,63591L,63592L,63593L,63594L,
9975163595L,63596L,63597L,63598L,63599L,63600L,63601L,63602L,63603L,63604L,
9975263605L,63606L,63607L,63608L,63609L,63610L,63611L,63612L,63613L,63614L,
9975363615L,63616L,63617L,63618L,63619L,63620L,63621L,63622L,63623L,63624L,
9975463625L,63626L,63627L,63628L,63629L,63630L,63631L,63632L,63633L,63634L,
9975563635L,63636L,63637L,63638L,63639L,63640L,63641L,63642L,63643L,63644L,
9975663645L,63646L,63647L,63648L,63649L,63650L,63651L,63652L,63653L,63654L,
9975763655L,63656L,63657L,63658L,63659L,63660L,63661L,63662L,63663L,63664L,
9975863665L,63666L,63667L,63668L,63669L,63670L,63671L,63672L,63673L,63674L,
9975963675L,63676L,63677L,63678L,63679L,63680L,63681L,63682L,63683L,63684L,
9976063685L,63686L,63687L,63688L,63689L,63690L,63691L,63692L,63693L,63694L,
9976163695L,63696L,63697L,63698L,63699L,63700L,63701L,63702L,63703L,63704L,
9976263705L,63706L,63707L,63708L,63709L,63710L,63711L,63712L,63713L,63714L,
9976363715L,63716L,63717L,63718L,63719L,63720L,63721L,63722L,63723L,63724L,
9976463725L,63726L,63727L,63728L,63729L,63730L,63731L,63732L,63733L,63734L,
9976563735L,63736L,63737L,63738L,63739L,63740L,63741L,63742L,63743L,63744L,
9976663745L,63746L,63747L,63748L,63749L,63750L,63751L,63752L,63753L,63754L,
9976763755L,63756L,63757L,63758L,63759L,63760L,63761L,63762L,63763L,63764L,
9976863765L,63766L,63767L,63768L,63769L,63770L,63771L,63772L,63773L,63774L,
9976963775L,63776L,63777L,63778L,63779L,63780L,63781L,63782L,63783L,63784L,
9977063785L,63786L,63787L,63788L,63789L,63790L,63791L,63792L,63793L,63794L,
9977163795L,63796L,63797L,63798L,63799L,63800L,63801L,63802L,63803L,63804L,
9977263805L,63806L,63807L,63808L,63809L,63810L,63811L,63812L,63813L,63814L,
9977363815L,63816L,63817L,63818L,63819L,63820L,63821L,63822L,63823L,63824L,
9977463825L,63826L,63827L,63828L,63829L,63830L,63831L,63832L,63833L,63834L,
9977563835L,63836L,63837L,63838L,63839L,63840L,63841L,63842L,63843L,63844L,
9977663845L,63846L,63847L,63848L,63849L,63850L,63851L,63852L,63853L,63854L,
9977763855L,63856L,63857L,63858L,63859L,63860L,63861L,63862L,63863L,63864L,
9977863865L,63866L,63867L,63868L,63869L,63870L,63871L,63872L,63873L,63874L,
9977963875L,63876L,63877L,63878L,63879L,63880L,63881L,63882L,63883L,63884L,
9978063885L,63886L,63887L,63888L,63889L,63890L,63891L,63892L,63893L,63894L,
9978163895L,63896L,63897L,63898L,63899L,63900L,63901L,63902L,63903L,63904L,
9978263905L,63906L,63907L,63908L,63909L,63910L,63911L,63912L,63913L,63914L,
9978363915L,63916L,63917L,63918L,63919L,63920L,63921L,63922L,63923L,63924L,
9978463925L,63926L,63927L,63928L,63929L,63930L,63931L,63932L,63933L,63934L,
9978563935L,63936L,63937L,63938L,63939L,63940L,63941L,63942L,63943L,63944L,
9978663945L,63946L,63947L,63948L,63949L,63950L,63951L,63952L,63953L,63954L,
9978763955L,63956L,63957L,63958L,63959L,63960L,63961L,63962L,63963L,63964L,
9978863965L,63966L,63967L,63968L,63969L,63970L,63971L,63972L,63973L,63974L,
9978963975L,63976L,63977L,63978L,63979L,63980L,63981L,63982L,63983L,63984L,
9979063985L,63986L,63987L,63988L,63989L,63990L,63991L,63992L,63993L,63994L,
9979163995L,63996L,63997L,63998L,63999L,64000L,64001L,64002L,64003L,64004L,
9979264005L,64006L,64007L,64008L,64009L,64010L,64011L,64012L,64013L,64014L,
9979364015L,64016L,64017L,64018L,64019L,64020L,64021L,64022L,64023L,64024L,
9979464025L,64026L,64027L,64028L,64029L,64030L,64031L,64032L,64033L,64034L,
9979564035L,64036L,64037L,64038L,64039L,64040L,64041L,64042L,64043L,64044L,
9979664045L,64046L,64047L,64048L,64049L,64050L,64051L,64052L,64053L,64054L,
9979764055L,64056L,64057L,64058L,64059L,64060L,64061L,64062L,64063L,64064L,
9979864065L,64066L,64067L,64068L,64069L,64070L,64071L,64072L,64073L,64074L,
9979964075L,64076L,64077L,64078L,64079L,64080L,64081L,64082L,64083L,64084L,
9980064085L,64086L,64087L,64088L,64089L,64090L,64091L,64092L,64093L,64094L,
9980164095L,64096L,64097L,64098L,64099L,64100L,64101L,64102L,64103L,64104L,
9980264105L,64106L,64107L,64108L,64109L,64110L,64111L,64112L,64113L,64114L,
9980364115L,64116L,64117L,64118L,64119L,64120L,64121L,64122L,64123L,64124L,
9980464125L,64126L,64127L,64128L,64129L,64130L,64131L,64132L,64133L,64134L,
9980564135L,64136L,64137L,64138L,64139L,64140L,64141L,64142L,64143L,64144L,
9980664145L,64146L,64147L,64148L,64149L,64150L,64151L,64152L,64153L,64154L,
9980764155L,64156L,64157L,64158L,64159L,64160L,64161L,64162L,64163L,64164L,
9980864165L,64166L,64167L,64168L,64169L,64170L,64171L,64172L,64173L,64174L,
9980964175L,64176L,64177L,64178L,64179L,64180L,64181L,64182L,64183L,64184L,
9981064185L,64186L,64187L,64188L,64189L,64190L,64191L,64192L,64193L,64194L,
9981164195L,64196L,64197L,64198L,64199L,64200L,64201L,64202L,64203L,64204L,
9981264205L,64206L,64207L,64208L,64209L,64210L,64211L,64212L,64213L,64214L,
9981364215L,64216L,64217L,64218L,64219L,64220L,64221L,64222L,64223L,64224L,
9981464225L,64226L,64227L,64228L,64229L,64230L,64231L,64232L,64233L,64234L,
9981564235L,64236L,64237L,64238L,64239L,64240L,64241L,64242L,64243L,64244L,
9981664245L,64246L,64247L,64248L,64249L,64250L,64251L,64252L,64253L,64254L,
9981764255L,64256L,64257L,64258L,64259L,64260L,64261L,64262L,64263L,64264L,
9981864265L,64266L,64267L,64268L,64269L,64270L,64271L,64272L,64273L,64274L,
9981964275L,64276L,64277L,64278L,64279L,64280L,64281L,64282L,64283L,64284L,
9982064285L,64286L,64287L,64288L,64289L,64290L,64291L,64292L,64293L,64294L,
9982164295L,64296L,64297L,64298L,64299L,64300L,64301L,64302L,64303L,64304L,
9982264305L,64306L,64307L,64308L,64309L,64310L,64311L,64312L,64313L,64314L,
9982364315L,64316L,64317L,64318L,64319L,64320L,64321L,64322L,64323L,64324L,
9982464325L,64326L,64327L,64328L,64329L,64330L,64331L,64332L,64333L,64334L,
9982564335L,64336L,64337L,64338L,64339L,64340L,64341L,64342L,64343L,64344L,
9982664345L,64346L,64347L,64348L,64349L,64350L,64351L,64352L,64353L,64354L,
9982764355L,64356L,64357L,64358L,64359L,64360L,64361L,64362L,64363L,64364L,
9982864365L,64366L,64367L,64368L,64369L,64370L,64371L,64372L,64373L,64374L,
9982964375L,64376L,64377L,64378L,64379L,64380L,64381L,64382L,64383L,64384L,
9983064385L,64386L,64387L,64388L,64389L,64390L,64391L,64392L,64393L,64394L,
9983164395L,64396L,64397L,64398L,64399L,64400L,64401L,64402L,64403L,64404L,
9983264405L,64406L,64407L,64408L,64409L,64410L,64411L,64412L,64413L,64414L,
9983364415L,64416L,64417L,64418L,64419L,64420L,64421L,64422L,64423L,64424L,
9983464425L,64426L,64427L,64428L,64429L,64430L,64431L,64432L,64433L,64434L,
9983564435L,64436L,64437L,64438L,64439L,64440L,64441L,64442L,64443L,64444L,
9983664445L,64446L,64447L,64448L,64449L,64450L,64451L,64452L,64453L,64454L,
9983764455L,64456L,64457L,64458L,64459L,64460L,64461L,64462L,64463L,64464L,
9983864465L,64466L,64467L,64468L,64469L,64470L,64471L,64472L,64473L,64474L,
9983964475L,64476L,64477L,64478L,64479L,64480L,64481L,64482L,64483L,64484L,
9984064485L,64486L,64487L,64488L,64489L,64490L,64491L,64492L,64493L,64494L,
9984164495L,64496L,64497L,64498L,64499L,64500L,64501L,64502L,64503L,64504L,
9984264505L,64506L,64507L,64508L,64509L,64510L,64511L,64512L,64513L,64514L,
9984364515L,64516L,64517L,64518L,64519L,64520L,64521L,64522L,64523L,64524L,
9984464525L,64526L,64527L,64528L,64529L,64530L,64531L,64532L,64533L,64534L,
9984564535L,64536L,64537L,64538L,64539L,64540L,64541L,64542L,64543L,64544L,
9984664545L,64546L,64547L,64548L,64549L,64550L,64551L,64552L,64553L,64554L,
9984764555L,64556L,64557L,64558L,64559L,64560L,64561L,64562L,64563L,64564L,
9984864565L,64566L,64567L,64568L,64569L,64570L,64571L,64572L,64573L,64574L,
9984964575L,64576L,64577L,64578L,64579L,64580L,64581L,64582L,64583L,64584L,
9985064585L,64586L,64587L,64588L,64589L,64590L,64591L,64592L,64593L,64594L,
9985164595L,64596L,64597L,64598L,64599L,64600L,64601L,64602L,64603L,64604L,
9985264605L,64606L,64607L,64608L,64609L,64610L,64611L,64612L,64613L,64614L,
9985364615L,64616L,64617L,64618L,64619L,64620L,64621L,64622L,64623L,64624L,
9985464625L,64626L,64627L,64628L,64629L,64630L,64631L,64632L,64633L,64634L,
9985564635L,64636L,64637L,64638L,64639L,64640L,64641L,64642L,64643L,64644L,
9985664645L,64646L,64647L,64648L,64649L,64650L,64651L,64652L,64653L,64654L,
9985764655L,64656L,64657L,64658L,64659L,64660L,64661L,64662L,64663L,64664L,
9985864665L,64666L,64667L,64668L,64669L,64670L,64671L,64672L,64673L,64674L,
9985964675L,64676L,64677L,64678L,64679L,64680L,64681L,64682L,64683L,64684L,
9986064685L,64686L,64687L,64688L,64689L,64690L,64691L,64692L,64693L,64694L,
9986164695L,64696L,64697L,64698L,64699L,64700L,64701L,64702L,64703L,64704L,
9986264705L,64706L,64707L,64708L,64709L,64710L,64711L,64712L,64713L,64714L,
9986364715L,64716L,64717L,64718L,64719L,64720L,64721L,64722L,64723L,64724L,
9986464725L,64726L,64727L,64728L,64729L,64730L,64731L,64732L,64733L,64734L,
9986564735L,64736L,64737L,64738L,64739L,64740L,64741L,64742L,64743L,64744L,
9986664745L,64746L,64747L,64748L,64749L,64750L,64751L,64752L,64753L,64754L,
9986764755L,64756L,64757L,64758L,64759L,64760L,64761L,64762L,64763L,64764L,
9986864765L,64766L,64767L,64768L,64769L,64770L,64771L,64772L,64773L,64774L,
9986964775L,64776L,64777L,64778L,64779L,64780L,64781L,64782L,64783L,64784L,
9987064785L,64786L,64787L,64788L,64789L,64790L,64791L,64792L,64793L,64794L,
9987164795L,64796L,64797L,64798L,64799L,64800L,64801L,64802L,64803L,64804L,
9987264805L,64806L,64807L,64808L,64809L,64810L,64811L,64812L,64813L,64814L,
9987364815L,64816L,64817L,64818L,64819L,64820L,64821L,64822L,64823L,64824L,
9987464825L,64826L,64827L,64828L,64829L,64830L,64831L,64832L,64833L,64834L,
9987564835L,64836L,64837L,64838L,64839L,64840L,64841L,64842L,64843L,64844L,
9987664845L,64846L,64847L,64848L,64849L,64850L,64851L,64852L,64853L,64854L,
9987764855L,64856L,64857L,64858L,64859L,64860L,64861L,64862L,64863L,64864L,
9987864865L,64866L,64867L,64868L,64869L,64870L,64871L,64872L,64873L,64874L,
9987964875L,64876L,64877L,64878L,64879L,64880L,64881L,64882L,64883L,64884L,
9988064885L,64886L,64887L,64888L,64889L,64890L,64891L,64892L,64893L,64894L,
9988164895L,64896L,64897L,64898L,64899L,64900L,64901L,64902L,64903L,64904L,
9988264905L,64906L,64907L,64908L,64909L,64910L,64911L,64912L,64913L,64914L,
9988364915L,64916L,64917L,64918L,64919L,64920L,64921L,64922L,64923L,64924L,
9988464925L,64926L,64927L,64928L,64929L,64930L,64931L,64932L,64933L,64934L,
9988564935L,64936L,64937L,64938L,64939L,64940L,64941L,64942L,64943L,64944L,
9988664945L,64946L,64947L,64948L,64949L,64950L,64951L,64952L,64953L,64954L,
9988764955L,64956L,64957L,64958L,64959L,64960L,64961L,64962L,64963L,64964L,
9988864965L,64966L,64967L,64968L,64969L,64970L,64971L,64972L,64973L,64974L,
9988964975L,64976L,64977L,64978L,64979L,64980L,64981L,64982L,64983L,64984L,
9989064985L,64986L,64987L,64988L,64989L,64990L,64991L,64992L,64993L,64994L,
9989164995L,64996L,64997L,64998L,64999L,65000L,65001L,65002L,65003L,65004L,
9989265005L,65006L,65007L,65008L,65009L,65010L,65011L,65012L,65013L,65014L,
9989365015L,65016L,65017L,65018L,65019L,65020L,65021L,65022L,65023L,65024L,
9989465025L,65026L,65027L,65028L,65029L,65030L,65031L,65032L,65033L,65034L,
9989565035L,65036L,65037L,65038L,65039L,65040L,65041L,65042L,65043L,65044L,
9989665045L,65046L,65047L,65048L,65049L,65050L,65051L,65052L,65053L,65054L,
9989765055L,65056L,65057L,65058L,65059L,65060L,65061L,65062L,65063L,65064L,
9989865065L,65066L,65067L,65068L,65069L,65070L,65071L,65072L,65073L,65074L,
9989965075L,65076L,65077L,65078L,65079L,65080L,65081L,65082L,65083L,65084L,
9990065085L,65086L,65087L,65088L,65089L,65090L,65091L,65092L,65093L,65094L,
9990165095L,65096L,65097L,65098L,65099L,65100L,65101L,65102L,65103L,65104L,
9990265105L,65106L,65107L,65108L,65109L,65110L,65111L,65112L,65113L,65114L,
9990365115L,65116L,65117L,65118L,65119L,65120L,65121L,65122L,65123L,65124L,
9990465125L,65126L,65127L,65128L,65129L,65130L,65131L,65132L,65133L,65134L,
9990565135L,65136L,65137L,65138L,65139L,65140L,65141L,65142L,65143L,65144L,
9990665145L,65146L,65147L,65148L,65149L,65150L,65151L,65152L,65153L,65154L,
9990765155L,65156L,65157L,65158L,65159L,65160L,65161L,65162L,65163L,65164L,
9990865165L,65166L,65167L,65168L,65169L,65170L,65171L,65172L,65173L,65174L,
9990965175L,65176L,65177L,65178L,65179L,65180L,65181L,65182L,65183L,65184L,
9991065185L,65186L,65187L,65188L,65189L,65190L,65191L,65192L,65193L,65194L,
9991165195L,65196L,65197L,65198L,65199L,65200L,65201L,65202L,65203L,65204L,
9991265205L,65206L,65207L,65208L,65209L,65210L,65211L,65212L,65213L,65214L,
9991365215L,65216L,65217L,65218L,65219L,65220L,65221L,65222L,65223L,65224L,
9991465225L,65226L,65227L,65228L,65229L,65230L,65231L,65232L,65233L,65234L,
9991565235L,65236L,65237L,65238L,65239L,65240L,65241L,65242L,65243L,65244L,
9991665245L,65246L,65247L,65248L,65249L,65250L,65251L,65252L,65253L,65254L,
9991765255L,65256L,65257L,65258L,65259L,65260L,65261L,65262L,65263L,65264L,
9991865265L,65266L,65267L,65268L,65269L,65270L,65271L,65272L,65273L,65274L,
9991965275L,65276L,65277L,65278L,65279L,65280L,65281L,65282L,65283L,65284L,
9992065285L,65286L,65287L,65288L,65289L,65290L,65291L,65292L,65293L,65294L,
9992165295L,65296L,65297L,65298L,65299L,65300L,65301L,65302L,65303L,65304L,
9992265305L,65306L,65307L,65308L,65309L,65310L,65311L,65312L,65313L,65314L,
9992365315L,65316L,65317L,65318L,65319L,65320L,65321L,65322L,65323L,65324L,
9992465325L,65326L,65327L,65328L,65329L,65330L,65331L,65332L,65333L,65334L,
9992565335L,65336L,65337L,65338L,65339L,65340L,65341L,65342L,65343L,65344L,
9992665313L,65314L,65315L,65316L,65317L,65318L,65319L,65320L,65321L,65322L,
9992765323L,65324L,65325L,65326L,65327L,65328L,65329L,65330L,65331L,65332L,
9992865333L,65334L,65335L,65336L,65337L,65338L,65371L,65372L,65373L,65374L,
9992965375L,65376L,65377L,65378L,65379L,65380L,65381L,65382L,65383L,65384L,
9993065385L,65386L,65387L,65388L,65389L,65390L,65391L,65392L,65393L,65394L,
9993165395L,65396L,65397L,65398L,65399L,65400L,65401L,65402L,65403L,65404L,
9993265405L,65406L,65407L,65408L,65409L,65410L,65411L,65412L,65413L,65414L,
9993365415L,65416L,65417L,65418L,65419L,65420L,65421L,65422L,65423L,65424L,
9993465425L,65426L,65427L,65428L,65429L,65430L,65431L,65432L,65433L,65434L,
9993565435L,65436L,65437L,65438L,65439L,65440L,65441L,65442L,65443L,65444L,
9993665445L,65446L,65447L,65448L,65449L,65450L,65451L,65452L,65453L,65454L,
9993765455L,65456L,65457L,65458L,65459L,65460L,65461L,65462L,65463L,65464L,
9993865465L,65466L,65467L,65468L,65469L,65470L,65471L,65472L,65473L,65474L,
9993965475L,65476L,65477L,65478L,65479L,65480L,65481L,65482L,65483L,65484L,
9994065485L,65486L,65487L,65488L,65489L,65490L,65491L,65492L,65493L,65494L,
9994165495L,65496L,65497L,65498L,65499L,65500L,65501L,65502L,65503L,65504L,
9994265505L,65506L,65507L,65508L,65509L,65510L,65511L,65512L,65513L,65514L,
9994365515L,65516L,65517L,65518L,65519L,65520L,65521L,65522L,65523L,65524L,
9994465525L,65526L,65527L,65528L,65529L,65530L,65531L,65532L,65533L,65534L,
99949#if defined(DUK_USE_REGEXP_CANON_BITMAP)
9995523,0,224,19,1,228,255,255,255,255,255,255,255,255,255,255,63,254,255,127,
99956255,255,255,255,255,255,255,255,231,231,0,16,255,227,255,255,63,255,255,
99957255,255,255,255,255,1,252,255,255,255,255,255,255,255,255,255,255,255,255,
99958255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99959255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99960255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99961255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99962255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99963255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99964227,129,255,255,255,147,255,255,255,255,255,255,255,255,255,255,255,255,
99965255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99966255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99967255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
99968255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,251,
100014 mask = (((duk_uint32_t) 1U) << bits) - 1U;
100015 tmp = (ctx->
currval >> shift) & mask;
100019 DUK_DDD(
DUK_DDDPRINT(
"decode_bits: %ld bits -> 0x%08lx (%ld), currbits=%ld, currval=0x%08lx",
100020 (
long) bits, (
unsigned long) tmp, (
long) tmp, (
long) ctx->
currbits, (
unsigned long) ctx->
currval));
100065 return (t - 1) + 37;
100074#define DUK__BITPACK_LETTER_LIMIT 26
100075#define DUK__BITPACK_LOOKUP1 26
100076#define DUK__BITPACK_LOOKUP2 27
100077#define DUK__BITPACK_SWITCH1 28
100078#define DUK__BITPACK_SWITCH 29
100079#define DUK__BITPACK_UNUSED1 30
100080#define DUK__BITPACK_EIGHTBIT 31
100099 for (i = 0; i < len; i++) {
100121 out[i] = (duk_uint8_t) t;
100128#undef DUK__BITPACK_EIGHTBIT
100129#undef DUK__BITPACK_LETTER_LIMIT
100130#undef DUK__BITPACK_LOOKUP1
100131#undef DUK__BITPACK_LOOKUP2
100132#undef DUK__BITPACK_SWITCH
100133#undef DUK__BITPACK_SWITCH1
100134#undef DUK__BITPACK_UNUSED1
100204 bw_ctx->
p = p + curr_offset;
100206 bw_ctx->
p_limit = p + new_length;
100214 bw_ctx->
buf = h_buf;
100245 new_sz = curr_off + sz + add_sz;
100252 new_sz = curr_off + sz;
100261 DUK_DD(
DUK_DDPRINT(
"resize bufferwriter from %ld to %ld (add_sz=%ld)", (
long) curr_off, (
long) new_sz, (
long) add_sz));
100282 duk_uint8_t *p_base;
100310 const duk_uint8_t *buf,
100312 duk_uint8_t *p_base;
100323 move_sz = buf_sz - dst_off;
100326 duk_memmove_unsafe((
void *) (p_base + dst_off + len), (
const void *) (p_base + dst_off), (
size_t) move_sz);
100327 duk_memcpy_unsafe((
void *) (p_base + dst_off), (
const void *) buf, (
size_t) len);
100334 const duk_uint8_t *buf,
100350 duk_uint8_t *p_base;
100364 DUK_ASSERT(dst_off <= src_off || dst_off >= src_off + len);
100366 if (dst_off <= src_off) {
100374 move_sz = buf_sz - dst_off;
100377 duk_memmove_unsafe((
void *) (p_base + dst_off + len), (
const void *) (p_base + dst_off), (
size_t) move_sz);
100378 duk_memcpy_unsafe((
void *) (p_base + dst_off), (
const void *) (p_base + src_off), (
size_t) len);
100395 DUK_ASSERT(dst_off <= src_off || dst_off >= src_off + len);
100402 duk_uint8_t *p_base, *p_dst, *p_src;
100412 move_sz = buf_sz - off;
100413 p_dst = p_base + off + len;
100414 p_src = p_base + off;
100431 duk_uint8_t *p_base;
100432 duk_uint8_t *p_src;
100433 duk_uint8_t *p_dst;
100443 p_dst = p_base + off;
100454#if defined(DUK_USE_ASSERTIONS)
100483#define DUK__DOUBLE_INT_CAST1(tname, minval, maxval) \
100485 if (DUK_LIKELY(x >= (duk_double_t) (minval))) { \
100486 DUK_ASSERT(!DUK_ISNAN(x)); \
100487 if (DUK_LIKELY(x <= (duk_double_t) (maxval))) { \
100488 return (tname) x; \
100490 return (tname) (maxval); \
100497 return (tname) (minval); \
100505#define DUK__DOUBLE_INT_CAST2(tname, minval, maxval) \
100507 return (tname) duk_double_fmin(duk_double_fmax(x, (duk_double_t) (minval)), (duk_double_t) (maxval)); \
100511#define DUK__DOUBLE_INT_CAST3(tname, minval, maxval) \
100513 if (DUK_ISNAN(x)) { \
100515 return (tname) 0; \
100517 return (tname) DUK_FMIN(DUK_FMAX(x, (duk_double_t) (minval)), (duk_double_t) (maxval)); \
100529#define DUK__DOUBLE_INT_CAST4(tname, minval, maxval) \
100531 return (tname) DUK_FMIN(DUK_FMAX(x, (duk_double_t) (minval)), (duk_double_t) (maxval)); \
100535#if defined(DUK_USE_ALLOW_UNDEFINED_BEHAVIOR)
100546#if defined(DUK_USE_ALLOW_UNDEFINED_BEHAVIOR)
100554#if defined(DUK_USE_ALLOW_UNDEFINED_BEHAVIOR)
100555 return (duk_int32_t) x;
100562#if defined(DUK_USE_ALLOW_UNDEFINED_BEHAVIOR)
100563 return (duk_uint32_t) x;
100574#define DUK__FLOAT_ROUND_LIMIT 340282356779733623858607532500980858880.0
100579#define DUK__FLOAT_MAX 340282346638528859811704183484516925440.0
100592#if defined(DUK_USE_ALLOW_UNDEFINED_BEHAVIOR)
100630#undef DUK__DOUBLE_INT_CAST1
100631#undef DUK__DOUBLE_INT_CAST2
100632#undef DUK__DOUBLE_INT_CAST3
100633#undef DUK__DOUBLE_INT_CAST4
100634#undef DUK__FLOAT_MAX
100635#undef DUK__FLOAT_ROUND_LIMIT
100686#if defined(DUK_USE_64BIT_OPS)
100687#if defined(DUK_USE_DOUBLE_ME)
100693 return (du.
ui[DUK_DBL_IDX_UI0] & 0x7ff00000UL) == 0x7ff00000UL;
100699#if defined(DUK_USE_64BIT_OPS)
100705#if defined(DUK_USE_64BIT_OPS)
100706#if defined(DUK_USE_DOUBLE_ME)
100726 t = du.
ui[DUK_DBL_IDX_UI0] & 0x7ff00000UL;
100727 if (t == 0x00000000UL) {
100730 if (t == 0x7ff00000UL) {
100759 return (((du1.
ui[DUK_DBL_IDX_UI0] ^ du2.
ui[DUK_DBL_IDX_UI0]) & 0x80000000UL) == 0);
100768 return (x < y ? x : y);
100777 return (x > y ? x : y);
100841#if !defined(DUK_USE_ALLOW_UNDEFINED_BEHAVIOR)
100855 }
else if (x < 0.0) {
100874#if defined(DUK_USE_DOUBLE_LE)
100877#elif defined(DUK_USE_DOUBLE_ME)
100878 duk_uint32_t a, b;
100885#elif defined(DUK_USE_DOUBLE_BE)
100887#if defined(DUK_USE_64BIT_OPS)
100888 u->ull[0] = DUK_BSWAP64(u->ull[0]);
100890 duk_uint32_t a, b;
100898#error internal error
100907#if defined(DUK_USE_DOUBLE_LE)
100909#if defined(DUK_USE_64BIT_OPS)
100910 u->ull[0] = DUK_BSWAP64(u->ull[0]);
100912 duk_uint32_t a, b;
100919#elif defined(DUK_USE_DOUBLE_ME)
100920 duk_uint32_t a, b;
100927#elif defined(DUK_USE_DOUBLE_BE)
100931#error internal error
100940#if defined(DUK_USE_DOUBLE_LE) || defined(DUK_USE_DOUBLE_ME)
100943#elif defined(DUK_USE_DOUBLE_BE)
100947#error internal error
100959#if defined(DUK_USE_GCC_PRAGMAS)
100960#pragma GCC diagnostic push
100961#pragma GCC diagnostic ignored "-Wfloat-equal"
100962#elif defined(DUK_USE_CLANG_PRAGMAS)
100963#pragma clang diagnostic push
100964#pragma clang diagnostic ignored "-Wfloat-equal"
100974#if defined(DUK_USE_GCC_PRAGMAS)
100975#pragma GCC diagnostic pop
100976#elif defined(DUK_USE_CLANG_PRAGMAS)
100977#pragma clang diagnostic pop
100990#if defined(DUK_USE_STRHASH_DENSE)
100992#define DUK__MAGIC_M ((duk_uint32_t) 0x5bd1e995UL)
100993#define DUK__MAGIC_R 24
100995DUK_INTERNAL duk_uint32_t duk_util_hashbytes(
const duk_uint8_t *data,
duk_size_t len, duk_uint32_t seed) {
100996 duk_uint32_t h = seed ^ ((duk_uint32_t) len);
100998 while (len >= 4) {
101004#if defined(DUK_USE_HASHBYTES_UNALIGNED_U32_ACCESS)
101005 duk_uint32_t k = *((
const duk_uint32_t *) (
const void *) data);
101007 duk_uint32_t k = ((duk_uint32_t) data[0]) | (((duk_uint32_t) data[1]) << 8) | (((duk_uint32_t) data[2]) << 16) |
101008 (((duk_uint32_t) data[3]) << 24);
101011 k *= DUK__MAGIC_M;
101012 k ^= k >> DUK__MAGIC_R;
101013 k *= DUK__MAGIC_M;
101014 h *= DUK__MAGIC_M;
101022 h ^= data[2] << 16;
101024 h ^= data[1] << 8;
101027 h *= DUK__MAGIC_M;
101031 h *= DUK__MAGIC_M;
101039#undef DUK__MAGIC_M
101040#undef DUK__MAGIC_R
101047#if defined(DUK_USE_ALLOW_UNDEFINED_BEHAVIOR)
101091#if !defined(DUK_USE_GET_RANDOM_DOUBLE)
101093#if defined(DUK_USE_PREFER_SIZE) || !defined(DUK_USE_64BIT_OPS)
101094#define DUK__RANDOM_SHAMIR3OP
101096#define DUK__RANDOM_XOROSHIRO128PLUS
101099#if defined(DUK__RANDOM_SHAMIR3OP)
101100#define DUK__UPDATE_RND(rnd) \
101102 (rnd) += ((rnd) * (rnd)) | 0x05UL; \
101103 (rnd) = ((rnd) &0xffffffffUL); \
101106#define DUK__RND_BIT(rnd) ((rnd) >> 31)
101137#if defined(DUK__RANDOM_XOROSHIRO128PLUS)
101143 return z ^ (z >> 31U);
101147 return (x << k) | (x >> (64U - k));
101159 s[0] = duk__rnd_rotl(s0, 55) ^ s1 ^ (s1 << 14U);
101160 s[1] = duk__rnd_rotl(s1, 36);
101175 for (i = 0; i < 64; i++) {
101190#if defined(DUK_USE_DOUBLE_ME)
101194 du.
ui[0] = du.
ui[1];
101198 return du.
d - 1.0;
101205#undef DUK__RANDOM_SHAMIR3OP
101206#undef DUK__RANDOM_XOROSHIRO128PLUS
101207#undef DUK__RND_BIT
101208#undef DUK__UPDATE_RND
static const __attribute__((used))
static struct bitmap snapshot
static os_mode mode
The current sprite mode.
static osspriteop_area * buffer
The buffer characteristics.
static uint32_t count(const http_directive *list, lwc_string *key)
duk_uint16_t duk_uint_least16_t
#define DUK_UNREACHABLE()
#define DUK_USE_VALSTACK_GROW_SHIFT
#define DUK_U64_CONSTANT(x)
duk_int32_t duk_int_fast32_t
#define DUK_USE_CALLSTACK_LIMIT
#define DUK_USE_STRTAB_MAXSIZE
#define DUK_ALWAYS_INLINE
#define DUK_USE_REGEXP_COMPILER_RECLIMIT
#define DUK_USE_HOBJECT_ENTRY_MINGROW_ADD
unsigned int duk_small_uint_t
duk_uint32_t duk_uint_least32_t
#define DUK_USE_STRTAB_SHRINK_LIMIT
#define DUK_USE_COMPILER_RECLIMIT
#define DUK_USE_TRACEBACK_DEPTH
duk_uint_t duk_ucodepoint_t
#define DUK_USE_STRHASH_SKIP_SHIFT
#define DUK_USE_HOBJECT_HASH_PROP_LIMIT
duk_uint_fast32_t duk_uint_fast_t
duk_small_int_t duk_ret_t
#define DUK_LOSE_CONST(src)
duk_int_fast32_t duk_int_fast_t
#define DUK_USE_JSON_ENC_RECLIMIT
#define DUK_USE_LITCACHE_SIZE
duk_int8_t duk_int_least8_t
#define DUK_USE_DEBUG_LEVEL
#define DUK_USE_CBOR_DEC_RECLIMIT
#define DUK_USE_ARCH_STRING
duk_small_uint_t duk_bool_t
#define DUK_USE_JSON_DEC_RECLIMIT
#define DUK_USE_FATAL_MAXLEN
duk_uint_fast16_t duk_small_uint_fast_t
#define DUK_USE_OS_STRING
#define DUK_USE_NATIVE_CALL_RECLIMIT
#define DUK_USE_ESBC_MAX_BYTES
#define DUK_USE_STRTAB_RESIZE_CHECK_MASK
#define DUK_I64_CONSTANT(x)
duk_uint8_t duk_uint_fast8_t
#define DUK_USE_HOBJECT_LAYOUT_2
#define DUK_USE_HOBJECT_ARRAY_MINGROW_DIVISOR
duk_int_t duk_codepoint_t
#define DUK_USE_MARK_AND_SWEEP_RECLIMIT
#define DUK_USE_HOBJECT_ARRAY_ABANDON_LIMIT
#define DUK_VA_COPY(dest, src)
#define DUK_USE_HOBJECT_ARRAY_FAST_RESIZE_LIMIT
#define DUK_USE_VALSTACK_SHRINK_SLACK_SHIFT
#define DUK_INTERNAL_DECL
#define DUK_USE_COMPILER_STRING
#define DUK_USE_HOBJECT_ARRAY_ABANDON_MINSIZE
#define DUK_USE_STRTAB_MINSIZE
duk_int_fast32_t duk_int_t
duk_int8_t duk_int_fast8_t
duk_int_fast16_t duk_small_int_fast_t
duk_int32_t duk_int_least32_t
#define DUK_USE_VALSTACK_SHRINK_CHECK_SHIFT
duk_int16_t duk_int_fast16_t
#define DUK_USE_ES6_PROXY
#define DUK_USE_HOBJECT_ARRAY_MINGROW_ADD
duk_uint8_t duk_uint_least8_t
#define DUK_WO_NORETURN(stmt)
duk_uint_fast32_t duk_uint_t
duk_int16_t duk_int_least16_t
#define DUK_USE_REGEXP_EXECUTOR_RECLIMIT
duk_uint32_t duk_uintmax_t
#define DUK_USE_HOBJECT_ENTRY_MINGROW_DIVISOR
#define DUK_WO_UNREACHABLE(stmt)
#define DUK_USE_VALSTACK_LIMIT
#define DUK_USE_CBOR_ENC_RECLIMIT
#define DUK_USE_ESBC_MAX_LINENUMBER
#define DUK_USE_TARGET_INFO
#define DUK_DOUBLE_INFINITY
#define DUK_USE_STRTAB_GROW_LIMIT
duk_uint32_t duk_uint_fast32_t
duk_uint16_t duk_uint_fast16_t
#define DUK_USE_EXEC_TIMEOUT_CHECK
#define DUK_HEAP_HAS_FINALIZER_NORESCUE(heap)
DUK_INTERNAL_DECL duk_hnatfunc * duk_known_hnatfunc(duk_hthread *thr, duk_idx_t idx)
#define DUK_HCOMPFUNC_GET_FUNCS_SIZE(heap, h)
#define DUK__ISHEXDIGIT(x)
DUK_INTERNAL_DECL duk_small_int_t duk_raw_write_xutf8(duk_uint8_t *p, duk_ucodepoint_t val)
DUK_INTERNAL_DECL void duk_heap_free(duk_heap *heap)
#define DUK_HSTRING_HAS_SYMBOL(x)
#define DUK_STR_INVALID_INSTANCEOF_RVAL
#define DUK__ISREG_TEMP(comp_ctx, x)
#define DUK_HOBJECT_CLASS_BOOLEAN
DUK_INTERNAL_DECL duk_catcher * duk_hthread_catcher_alloc(duk_hthread *thr)
#define DUK__BI_MAX_PARTS
DUK_INTERNAL_DECL duk_hobject * duk_to_hobject(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_bool_t duk_double_is_neginf(duk_double_t x)
#define DUK_HBUFFER_EXTERNAL_GET_DATA_PTR(heap, x)
DUK_LOCAL_DECL void duk__twodigit_year_fixup(duk_hthread *thr, duk_idx_t idx_val)
#define DUK_LJ_TYPE_THROW
DUK_INTERNAL_DECL duk_double_t duk_double_fmin(duk_double_t x, duk_double_t y)
#define DUK_HCOMPFUNC_GET_CONSTS_COUNT(heap, h)
DUK_LOCAL duk_uint32_t duk__bc_get_u32(duk_re_matcher_ctx *re_ctx, const duk_uint8_t **pc)
#define DUK_HCOMPFUNC_GET_VARENV(heap, h)
#define DUK_MS_FLAG_EMERGENCY
#define DUK_ERROR_TYPE_INVALID_ARGS(thr)
DUK_INTERNAL_DECL duk_double_t duk_tval_get_number_unpacked_fastint(duk_tval *tv)
DUK_EXTERNAL duk_uint_t duk_get_type_mask(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL void duk_fltunion_big_to_host(duk_float_union *u)
DUK_LOCAL_DECL void duk__json_dec_objarr_entry(duk_json_dec_ctx *js_ctx)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_is_identifier_part(duk_codepoint_t cp)
DUK_EXTERNAL duk_idx_t duk_push_heapptr(duk_hthread *thr, void *ptr)
DUK_EXTERNAL void duk_replace(duk_hthread *thr, duk_idx_t to_idx)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF void duk__vm_bitwise_binary_op(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y, duk_small_uint_fast_t idx_z, duk_small_uint_fast_t opcode)
DUK_INTERNAL_DECL duk_ret_t duk_bi_uint8array_plainof(duk_context *ctx)
#define DUK_ACT_FLAG_TAILCALLED
DUK_INTERNAL_DECL duk_hthread * duk_get_hthread(duk_hthread *thr, duk_idx_t idx)
#define DUK__EMIT_FLAG_NO_SHUFFLE_B
#define DUK_DBG_CMD_APPREQUEST
#define DUK_CAT_FLAG_CATCH_BINDING_ENABLED
#define DUK_HEAPHDR_CLEAR_FINALIZED(h)
DUK_EXTERNAL duk_bool_t duk_check_stack_top(duk_hthread *thr, duk_idx_t top)
#define DUK_TVAL_DECREF(thr, tv)
DUK_INTERNAL_DECL duk_ret_t duk_bi_typedarray_byteoffset_getter(duk_context *ctx)
#define DUK_MS_FLAG_NO_OBJECT_COMPACTION
#define DUK_STRIDX_TO_LOCALE_STRING
DUK_LOCAL_DECL void duk__ivalue_var_hstring(duk_compiler_ctx *comp_ctx, duk_ivalue *x, duk_hstring *h)
#define DUK__FUNCTION_BODY_REQUIRE_SLOTS
#define DUK__BP_ASSIGNMENT
#define DUK__SEQ_BODY(barg, carg)
#define DUK_RETOK_DISJUNCTION
#define DUK_HSTRING_GET_ARRIDX_FAST(h)
#define DUK_TOK_ARSHIFT_EQ
#define DUK_HBUFFER_DYNAMIC_GET_DATA_PTR(heap, x)
DUK_LOCAL_DECL void duk__ivalue_toplain(duk_compiler_ctx *comp_ctx, duk_ivalue *x)
DUK_EXTERNAL duk_bool_t duk_get_prop_literal_raw(duk_hthread *thr, duk_idx_t obj_idx, const char *key, duk_size_t key_len)
#define DUK_ASSERT_STRIDX_VALID(val)
DUK_EXTERNAL void duk_push_buffer_object(duk_hthread *thr, duk_idx_t idx_buffer, duk_size_t byte_offset, duk_size_t byte_length, duk_uint_t flags)
DUK_LOCAL duk_bool_t duk__js_samevalue_number(duk_double_t x, duk_double_t y)
#define DUK_STR_STRING_TOO_LONG
DUK_EXTERNAL void duk_swap(duk_hthread *thr, duk_idx_t idx1, duk_idx_t idx2)
DUK_LOCAL duk_uint8_t duk__cbor_decode_peekbyte(duk_cbor_decode_context *dec_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_constructor_from_code_point(duk_context *ctx)
#define DUK_BIDX_ARRAYBUFFER_PROTOTYPE
DUK_LOCAL void duk__bi_sub_copy(duk__bigint *x, duk__bigint *y, duk__bigint *t)
DUK_LOCAL const duk_uint8_t * duk__cbor_decode_consume(duk_cbor_decode_context *dec_ctx, duk_size_t len)
#define DUK_LABEL_FLAG_ALLOW_CONTINUE
DUK_EXTERNAL const char * duk_get_string_default(duk_hthread *thr, duk_idx_t idx, const char *def_value)
DUK_INTERNAL_DECL duk_tval * duk_require_tval(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL void duk_free(duk_hthread *thr, void *ptr)
#define DUK_HEAPHDR_SET_REACHABLE(h)
DUK_INTERNAL_DECL duk_bool_t duk_js_getvar_envrec(duk_hthread *thr, duk_hobject *env, duk_hstring *name, duk_bool_t throw_flag)
#define DUK_STR_NOT_NATFUNC
DUK_INTERNAL_DECL duk_ret_t duk_bi_typedarray_buffer_getter(duk_context *ctx)
DUK_LOCAL void duk__transform_callback_encode_uri(duk__transform_context *tfm_ctx, const void *udata, duk_codepoint_t cp)
#define DUK_HBUFOBJ_CLAMP_BYTELENGTH(h, len)
DUK_INTERNAL_DECL void duk_js_init_activation_environment_records_delayed(duk_hthread *thr, duk_activation *act)
#define DUK_BIDX_UINT8ARRAY_PROTOTYPE
#define DUK_HCOMPFUNC_SET_FUNCS(heap, h, v)
#define DUK__LOCAL_TZOFFSET_MAXITER
#define DUK_ACT_FLAG_PREVENT_YIELD
DUK_LOCAL void duk__free_run_finalizers(duk_heap *heap)
DUK_LOCAL void duk__init_lexer_window(duk_lexer_ctx *lex_ctx)
#define DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv)
const duk_uint8_t duk_unicode_ids_m_let_noa[42]
#define DUK_ERROR_RANGE(thr, msg)
#define DUK_HBUFFER_ASSERT_VALID(h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_symbol_constructor_shared(duk_context *ctx)
#define DUK_HOBJECT_FLAG_NEWENV
DUK_LOCAL duk__sort_key_t duk__hstring_sort_key(duk_hstring *x)
DUK_INTERNAL_DECL void duk_dup_m3(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_insert_undefined_n(duk_hthread *thr, duk_idx_t idx, duk_idx_t count)
#define DUK_HSTRING_HAS_ASCII(x)
DUK_LOCAL duk_int_t duk__api_coerce_d2i(duk_hthread *thr, duk_idx_t idx, duk_int_t def_value, duk_bool_t require)
DUK_INTERNAL_DECL void duk_hobject_resize_entrypart(duk_hthread *thr, duk_hobject *obj, duk_uint32_t new_e_size)
#define DUK_LJ_TYPE_CONTINUE
#define DUK_UNICODE_MAX_CESU8_BMP_LENGTH
#define DUK_TVAL_SET_NUMBER_UPDREF
DUK_LOCAL_DECL void duk__parse_func_body(duk_compiler_ctx *comp_ctx, duk_bool_t expect_eof, duk_bool_t implicit_return_value, duk_bool_t regexp_after, duk_small_int_t expect_token)
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_tojson(duk_context *ctx)
DUK_EXTERNAL const char * duk_get_string(duk_hthread *thr, duk_idx_t idx)
struct duk_breakpoint duk_breakpoint
DUK_INTERNAL_DECL duk_ret_t duk_bi_duktape_object_enc(duk_context *ctx)
#define DUK_COMPILER_MAX_BYTECODE_LENGTH
#define DUK_TOK_INCREMENT
DUK_LOCAL duk_uint32_t duk__append_jump_offset(duk_re_compiler_ctx *re_ctx, duk_int32_t skip)
DUK_LOCAL duk_uint32_t duk__tval_fastint_to_arr_idx(duk_tval *tv)
#define DUK_HOBJECT_A_GET_VALUE_PTR(heap, h, i)
DUK_LOCAL duk_uint8_t * duk__dump_string_prop(duk_hthread *thr, duk_uint8_t *p, duk_bufwriter_ctx *bw_ctx, duk_hobject *func, duk_small_uint_t stridx)
#define duk_xdef_prop_stridx_short_wec(thr, obj_idx, stridx)
DUK_LOCAL void duk__cbor_decode_string(duk_cbor_decode_context *dec_ctx, duk_uint8_t ib, duk_uint8_t ai)
#define DUK_LJ_TYPE_YIELD
#define DUK__AUGMENT_CALL_RELAX_COUNT
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_includes(duk_context *ctx)
#define DUK_ASC_DOUBLEQUOTE
DUK_LOCAL duk_small_uint_t duk__handle_return(duk_hthread *thr, duk_activation *entry_act)
#define DUK_HOBJECT_DECREF_ALLOWNULL(thr, h)
#define DUK_BW_WRITE_ENSURE_SLICE(thr, bw, dst_off, dst_len)
#define DUK_STRIDX_UC_UNDEFINED
DUK_INTERNAL_DECL duk_hobject * duk_require_hobject_accept_mask(duk_hthread *thr, duk_idx_t idx, duk_uint_t type_mask)
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_hypot(duk_context *ctx)
#define DUK_HBUFFER_SET_EXTERNAL(x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_function_prototype_to_string(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_split(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_cbor_encode(duk_context *ctx)
#define DUK_STR_NUMBER_OUTSIDE_RANGE
#define DUK_HOBJECT_HAS_EXOTIC_ARRAY(h)
DUK_INTERNAL_DECL duk_bool_t duk_to_boolean_top_pop(duk_hthread *thr)
#define DUK_STR_INVALID_STATE
#define DUK_DBG_IB_OBJECT
DUK_LOCAL double duk__asin(double x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_concat(duk_context *ctx)
DUK_INTERNAL_DECL void duk_push_hobject(duk_hthread *thr, duk_hobject *h)
#define DUK_HOBJECT_ALLOWS_FASTREFS(h)
DUK_LOCAL_DECL void duk__emit_cstring(duk_json_enc_ctx *js_ctx, const char *p)
DUK_LOCAL void duk__advance_chars(duk_lexer_ctx *lex_ctx, duk_small_uint_t count_chars)
DUK_EXTERNAL void duk_push_current_thread(duk_hthread *thr)
DUK_LOCAL void duk__safe_call_adjust_valstack(duk_hthread *thr, duk_idx_t idx_retbase, duk_idx_t num_stack_rets, duk_idx_t num_actual_rets)
#define DUK_DBLUNION_IS_POSINF(u)
DUK_EXTERNAL void duk_set_global_object(duk_hthread *thr)
#define DUK_STRIDX_UINT8_CLAMPED_ARRAY
DUK_EXTERNAL duk_bool_t duk_is_pointer(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_ret_t duk__js_compile_raw(duk_hthread *thr, void *udata)
#define DUK_BW_ADD_PTR(thr, bw_ctx, delta)
#define DUK_DBG_IB_NOTIFY
#define DUK_HCOMPFUNC_GET_CONSTS_SIZE(heap, h)
#define duk_push_i32(thr, val)
DUK_INTERNAL_DECL void duk_default_free_function(void *udata, void *ptr)
#define DUK_ERROR_REQUIRE_TYPE_INDEX(thr, idx, expectname, lowmemstr)
#define DUK_TVAL_SET_NULL(tv)
DUK_LOCAL_DECL void duk__expr_toplain(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t rbp_flags)
#define DUK__ADVANCEBYTES(lex_ctx, count)
#define DUK_HTHREAD_DECREF_NORZ_ALLOWNULL(thr, h)
#define DUK_DBG_IB_NUMBER
DUK_LOCAL DUK_ALWAYS_INLINE duk_bool_t duk__resolve_target_fastpath_check(duk_hthread *thr, duk_idx_t idx_func, duk_hobject **out_func, duk_small_uint_t call_flags)
#define DUK_OP_PREDECP_CR
#define DUK_S2N_FLAG_ALLOW_AUTO_LEGACY_OCT_INT
#define DUK_TVAL_SET_BOOLEAN_TRUE(tv)
DUK_INTERNAL const duk_uint16_t duk_unicode_re_ranges_not_white[24]
DUK_LOCAL duk_bool_t duk__const_needs_refcount(duk_compiler_ctx *comp_ctx, duk_regconst_t rc)
#define DUK_HOBJECT_ALIGN_TARGET
DUK_LOCAL duk_codepoint_t duk__re_canon_next_discontinuity(duk_codepoint_t start, duk_codepoint_t end)
#define DUK_TVAL_SET_FASTINT(tv, i)
#define DUK_OP_POSTINCP_RR
DUK_LOCAL const duk_uint32_t duk__parse_iso8601_control[]
DUK_LOCAL void duk__remove_slice(duk_re_compiler_ctx *re_ctx, duk_uint32_t data_offset, duk_uint32_t data_length)
#define DUK_HEAPHDR_IS_STRING(h)
DUK_INTERNAL_DECL void duk_hbuffer_resize(duk_hthread *thr, duk_hbuffer_dynamic *buf, duk_size_t new_size)
#define DUK__NO_ARRAY_INDEX
DUK_LOCAL duk_int_t duk__year_from_day(duk_int_t day, duk_small_int_t *out_day_within_year)
#define DUK_STR_REGEXP_EXECUTOR_STEP_LIMIT
DUK_INTERNAL_DECL duk_hthread * duk_require_hthread(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL void * duk_get_buffer_data(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size)
#define DUK_HCOMPFUNC_GET_FUNCS_COUNT(heap, h)
#define DUK_STR_RESULT_TOO_LONG
DUK_INTERNAL_DECL void duk_dblunion_big_to_host(duk_double_union *u)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_concat(duk_context *ctx)
#define DUK_TVAL_SET_FASTINT_UPDREF
#define DUK_HSTRING_GET_DATA(x)
DUK_INTERNAL_DECL duk_bool_t duk_bi_date_is_leap_year(duk_int_t year)
DUK_LOCAL_DECL void duk__init_varmap_and_prologue_for_pass2(duk_compiler_ctx *comp_ctx, duk_regconst_t *out_stmt_value_reg)
DUK_INTERNAL_DECL void duk_pop_unsafe(duk_hthread *thr)
#define DUK_OP_DECLVAR_RC
#define DUK_OP_GETPROP_RR
DUK_INTERNAL_DECL duk_size_t duk_unicode_unvalidated_utf8_length(const duk_uint8_t *data, duk_size_t blen)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_unshift(duk_context *ctx)
DUK_INTERNAL_DECL duk_hboundfunc * duk_hboundfunc_alloc(duk_heap *heap, duk_uint_t hobject_flags)
DUK_INTERNAL_DECL duk_ret_t duk_bi_error_constructor_shared(duk_context *ctx)
#define DUK_HSTRING_IS_ASCII(x)
DUK_INTERNAL_DECL void duk_refzero_check_fast(duk_hthread *thr)
DUK_INTERNAL_DECL duk_ret_t duk_bi_boolean_constructor(duk_context *ctx)
#define DUK_HEAPHDR_SET_TEMPROOT(h)
#define DUK_REOP_ASSERT_WORD_BOUNDARY
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_sort(duk_context *ctx)
#define DUK_HOBJECT_CLASS_REGEXP
#define DUK_HEAP_HAS_DEBUGGER_PAUSED(heap)
DUK_INTERNAL_DECL duk_int32_t duk_double_to_int32_t(duk_double_t x)
#define DUK_LABEL_FLAG_ALLOW_BREAK
DUK_INTERNAL_DECL duk_uint16_t duk_js_touint16(duk_hthread *thr, duk_tval *tv)
DUK_LOCAL void duk__cbor_decode_objarr_exit(duk_cbor_decode_context *dec_ctx)
DUK_INTERNAL_DECL duk_uint32_t duk_double_to_uint32_t(duk_double_t x)
#define DUK_HEAP_HAS_MARKANDSWEEP_RECLIMIT_REACHED(heap)
#define DUK_DECL_TYPE_VAR
DUK_LOCAL void duk__bi_mul_small(duk__bigint *x, duk__bigint *y, duk_uint32_t z)
DUK_EXTERNAL duk_idx_t duk_require_top_index(duk_hthread *thr)
#define DUK__NARGS_VARARGS_MARKER
DUK_INTERNAL_DECL void duk_hthread_activation_unwind_reuse_norz(duk_hthread *thr)
#define DUK_STR_NOT_CALLABLE
#define DUK_STR_DEC_RECLIMIT
#define DUK_STR_TOPRIMITIVE_FAILED
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_is_sealed_frozen_shared(duk_context *ctx)
DUK_EXTERNAL void duk_dump_function(duk_hthread *thr)
#define DUK_STRIDX_BRACKETED_ELLIPSIS
DUK_EXTERNAL duk_idx_t duk_get_top_index(duk_hthread *thr)
#define DUK_STRIDX_ENUMERABLE
#define DUK_STR_REGEXP_SUPPORT_DISABLED
#define DUK_HBUFFER_DYNAMIC_GET_SIZE(x)
#define DUK_JSON_ENC_LOOPARRAY
DUK_EXTERNAL void * duk_get_heapptr_default(duk_hthread *thr, duk_idx_t idx, void *def_value)
#define DUK_HEAPHDR_GET_TYPE(h)
DUK_INTERNAL_DECL duk_uint8_t * duk_bw_resize(duk_hthread *thr, duk_bufwriter_ctx *bw_ctx, duk_size_t sz)
DUK_LOCAL void duk__to_primitive_helper(duk_hthread *thr, duk_idx_t idx, duk_int_t hint, duk_bool_t check_symbol)
DUK_LOCAL_DECL void duk__json_enc_quote_string(duk_json_enc_ctx *js_ctx, duk_hstring *h_str)
#define DUK_S2N_FLAG_ALLOW_FRAC
#define DUK_BC_TRYCATCH_FLAG_HAVE_FINALLY
DUK_INTERNAL_DECL void duk_dup_1(duk_hthread *thr)
#define DUK_BW_SET_PTR(thr, bw_ctx, ptr)
#define DUK_HOBJECT_GET_PROTOTYPE(heap, h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_char_at(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_del_prop_literal_raw(duk_hthread *thr, duk_idx_t obj_idx, const char *key, duk_size_t key_len)
DUK_LOCAL double duk__atan(double x)
DUK_EXTERNAL duk_double_t duk_opt_number(duk_hthread *thr, duk_idx_t idx, duk_double_t def_value)
#define DUK_TVAL_IS_NUMBER(tv)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_prototype_defineaccessor(duk_context *ctx)
DUK_LOCAL const duk_uint8_t duk__json_decstr_lookup[256]
DUK_INTERNAL_DECL void duk_bw_insert_ensure_slice(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t dst_off, duk_size_t src_off, duk_size_t len)
#define DUK_NOINLINE_PERF
#define DUK_HOBJECT_E_GET_FLAGS_PTR(heap, h, i)
#define DUK_STR_INVALID_ARG_NAME
DUK_INTERNAL_DECL duk_ret_t duk_bi_regexp_prototype_tostring(duk_context *ctx)
DUK_LOCAL void duk__reconfig_valstack_ecma_return(duk_hthread *thr)
DUK_EXTERNAL duk_int_t duk_get_current_magic(duk_hthread *thr)
DUK_INTERNAL_DECL duk_bool_t duk_get_prop_stridx_boolean(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t stridx, duk_bool_t *out_has_prop)
DUK_LOCAL void duk__bw_update_ptrs(duk_hthread *thr, duk_bufwriter_ctx *bw_ctx, duk_size_t curr_offset, duk_size_t new_length)
DUK_EXTERNAL void duk_debugger_detach(duk_hthread *thr)
DUK_EXTERNAL duk_bool_t duk_del_prop_index(duk_hthread *thr, duk_idx_t obj_idx, duk_uarridx_t arr_idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_constructor_utc(duk_context *ctx)
#define DUK_HOBJECT_FLAG_CONSTRUCTABLE
#define DUK_DBG_CMD_GETOBJPROPDESC
DUK_INTERNAL_DECL duk_uarridx_t duk_js_to_arrayindex_string(const duk_uint8_t *str, duk_uint32_t blen)
DUK_INTERNAL_DECL const char * duk_push_string_tval_readable_error(duk_hthread *thr, duk_tval *tv)
#define DUK_ERROR_TYPE(thr, msg)
DUK_LOCAL duk_bool_t duk__defaultvalue_coerce_attempt(duk_hthread *thr, duk_idx_t idx, duk_small_uint_t func_stridx)
#define DUK_TOK_EQUALSIGN
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_fill(duk_context *ctx)
DUK_LOCAL_DECL void duk__update_label_flags(duk_compiler_ctx *comp_ctx, duk_int_t label_id, duk_small_uint_t flags)
DUK_LOCAL void duk__call_prop_prep_stack(duk_hthread *thr, duk_idx_t normalized_obj_idx, duk_idx_t nargs)
DUK_LOCAL void duk__cbor_decode_join_buffers(duk_cbor_decode_context *dec_ctx, duk_idx_t count)
DUK_EXTERNAL duk_ret_t duk_uri_error_stash(duk_hthread *thr, const char *fmt,...)
DUK_LOCAL duk_hstring * duk__auto_unbox_symbol(duk_hthread *thr, duk_tval *tv_arg)
#define DUK_OP_PREINCP_RR
DUK_INTERNAL_DECL duk_hstring * duk_push_uint_to_hstring(duk_hthread *thr, duk_uint_t i)
#define DUK_HEAP_CLEAR_MARKANDSWEEP_RECLIMIT_REACHED(heap)
#define duk_push_i64(thr, val)
DUK_LOCAL const duk_uint8_t * duk__utf8_backtrack(duk_hthread *thr, const duk_uint8_t **ptr, const duk_uint8_t *ptr_start, const duk_uint8_t *ptr_end, duk_uint_fast32_t count)
DUK_INTERNAL_DECL duk_hthread * duk_hthread_alloc_unchecked(duk_heap *heap, duk_uint_t hobject_flags)
#define DUK_STR_NOT_WRITABLE
DUK_LOCAL double duk__fmax_fixed(double x, double y)
#define DUK_ERROR_RAW_FMT1(thr, file, line, err, fmt, arg1)
#define DUK_CAT_LABEL_SHIFT
#define DUK_HBOUNDFUNC_MAX_ARGS
DUK_INTERNAL void duk_err_longjmp(duk_hthread *thr)
#define DUK_PC2LINE_MAX_DIFF_LENGTH
#define DUK_BIDX_EVAL_ERROR_PROTOTYPE
#define DUK_RAW_WRITEINC_DOUBLE_BE(ptr, val)
DUK_INTERNAL_DECL void duk_heap_mark_and_sweep(duk_heap *heap, duk_small_uint_t flags)
#define DUK_STR_INVALID_LABEL
DUK_EXTERNAL duk_bool_t duk_del_prop(duk_hthread *thr, duk_idx_t obj_idx)
#define DUK_RETOK_ATOM_PERIOD
DUK_LOCAL_DECL duk_bool_t duk__get_own_propdesc_raw(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_uint32_t arr_idx, duk_propdesc *out_desc, duk_small_uint_t flags)
#define DUK_HOBJECT_POSTINC_ENEXT(h)
#define DUK_DBG_CMD_GETBYTECODE
#define DUK_STRIDX_LC_BUFFER
#define DUK_HBUFFER_INCREF(thr, h)
#define DUK_STRIDX_UC_ARGUMENTS
DUK_LOCAL void duk__cbor_decode_rewind(duk_cbor_decode_context *dec_ctx, duk_size_t len)
DUK_INTERNAL_DECL duk_double_t duk_to_number_m1(duk_hthread *thr)
#define DUK__IEEE_DOUBLE_EXP_BIAS
#define DUK_STRIDX_LC_POINTER
DUK_EXTERNAL duk_bool_t duk_get_boolean(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_ret_t duk__decode_helper(duk_hthread *thr, duk__decode_context *dec_ctx)
DUK_EXTERNAL void duk_fatal_raw(duk_hthread *thr, const char *err_msg)
DUK_LOCAL void duk__handle_finally(duk_hthread *thr, duk_tval *tv_val_unstable, duk_small_uint_t lj_type)
DUK_EXTERNAL void duk_inspect_value(duk_hthread *thr, duk_idx_t idx)
#define DUK_HOBJECT_P_COMPUTE_SIZE(n_ent, n_arr, n_hash)
DUK_LOCAL double duk__log(double x)
#define DUK__ERRFMT_BUFSIZE
DUK_LOCAL duk_bool_t duk__getprop_fastpath_bufobj_tval(duk_hthread *thr, duk_hobject *obj, duk_tval *tv_key)
#define DUK_BIDX_SYMBOL_PROTOTYPE
#define DUK__PROP_FLAGS_BITS
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_imul(duk_context *ctx)
#define DUK_ALLOC(heap, size)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_to_string(duk_context *ctx)
DUK_INTERNAL_DECL duk_uint16_t duk_raw_read_u16_be(const duk_uint8_t *p)
DUK_LOCAL void * duk__get_buffer_helper(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size, void *def_ptr, duk_size_t def_size, duk_bool_t throw_flag)
DUK_LOCAL duk_int_t duk__try_push_vsprintf(duk_hthread *thr, void *buf, duk_size_t sz, const char *fmt, va_list ap)
DUK_LOCAL void duk__activation_unwind_nofree_norz(duk_hthread *thr)
DUK_LOCAL void duk__cbor_decode_skip_aival_int(duk_cbor_decode_context *dec_ctx, duk_uint8_t ib)
#define DUK_DBLUNION_SET_NAN(u)
#define DUK__EXPR_FLAG_REQUIRE_INIT
DUK_EXTERNAL duk_bool_t duk_is_c_function(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL const duk_uint16_t duk_unicode_re_ranges_not_digit[4]
DUK_LOCAL void duk__cbor_encode_value(duk_cbor_encode_context *enc_ctx)
#define DUK_STRIDX_INT_FORMALS
DUK_EXTERNAL void duk_pop_3(duk_hthread *thr)
#define DUK_STR_INVALID_EXPRESSION
#define DUK_STR_INVALID_ARRAY_LENGTH
DUK_LOCAL void duk__grow_props_for_new_entry_item(duk_hthread *thr, duk_hobject *obj)
#define DUK_STR_INVALID_FUNC_NAME
#define DUK_TVAL_SET_U32(tv, val)
#define DUK_HARRAY_LENGTH_NONWRITABLE(h)
#define DUK_FREE_CHECKED(thr, ptr)
DUK_INTERNAL_DECL void duk_pop_2_nodecref_unsafe(duk_hthread *thr)
#define DUK_DBLUNION_GET_LOW32(u)
#define DUK_RE_EXECUTE_STEPS_LIMIT
DUK_INTERNAL_DECL void duk_xdef_prop_stridx_short_raw(duk_hthread *thr, duk_uint_t packed_args)
DUK_LOCAL duk_codepoint_t duk__lexer_parse_escape(duk_lexer_ctx *lex_ctx, duk_bool_t allow_es6)
DUK_INTERNAL_DECL void duk_dup_2(duk_hthread *thr)
DUK_LOCAL_DECL void duk__emit_a_bc(duk_compiler_ctx *comp_ctx, duk_small_uint_t op_flags, duk_regconst_t a, duk_regconst_t bc)
#define DUK_HOBJECT_FLAG_NAMEBINDING
DUK_EXTERNAL duk_idx_t duk_push_error_object_va_raw(duk_hthread *thr, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt, va_list ap)
#define DUK__CONSTP_C(ins)
DUK_INTERNAL_DECL double duk_js_arith_mod(double x, double y)
#define DUK_OP_PUTPROP_RC
#define DUK_HOBJECT_CMASK_BOOLEAN
DUK_LOCAL duk_hstring * duk__strtable_alloc_hstring(duk_heap *heap, const duk_uint8_t *str, duk_uint32_t blen, duk_uint32_t strhash, const duk_uint8_t *extdata)
DUK_EXTERNAL void duk_map_string(duk_hthread *thr, duk_idx_t idx, duk_map_char_function callback, void *udata)
DUK_INTERNAL_DECL duk_ret_t duk_bi_buffer_writefield(duk_context *ctx)
#define DUK__SETTEMP_CHECKMAX(comp_ctx, x)
DUK_EXTERNAL const char * duk_buffer_to_string(duk_hthread *thr, duk_idx_t idx)
#define DUK_ASC_EXCLAMATION
DUK_LOCAL duk_small_int_t duk__decode_hex_escape(const duk_uint8_t *p, duk_small_int_t n)
#define DUK__MAX_OUTPUT_DIGITS
#define DUK_CAT_GET_TYPE(c)
#define DUK_LEXER_BUFFER_SIZE
#define DUK_BC_TRYCATCH_FLAG_CATCH_BINDING
DUK_INTERNAL_DECL duk_double_t duk_time_get_ecmascript_time(duk_hthread *thr)
#define DUK_HEAPHDR_SET_NEXT(heap, h, val)
#define DUK__EQ_BODY(barg, carg)
#define DUK_STRIDX_TO_UTC_STRING
#define DUK_LFUNC_NARGS_MAX
#define DUK_N2S_FLAG_FIXED_FORMAT
DUK_LOCAL void duk__bi_add_small(duk__bigint *x, duk__bigint *y, duk_uint32_t z)
DUK_INTERNAL_DECL duk_bool_t duk_double_equals(duk_double_t x, duk_double_t y)
#define DUK_HEAP_SET_FINALIZER_NORESCUE(heap)
DUK_INTERNAL_DECL void duk_push_hbuffer(duk_hthread *thr, duk_hbuffer *h)
#define DUK_STR_NO_SOURCECODE
#define DUK__REPLACE_TO_TVPTR(thr, tv_ptr)
#define DUK__MAX_RE_QUANT_DIGITS
DUK_INTERNAL_DECL void * duk_default_alloc_function(void *udata, duk_size_t size)
#define DUK_MS_FLAG_POSTPONE_RESCUE
#define DUK_HEAPHDR_STRING_INIT_NULLS(h)
DUK_INTERNAL_DECL void duk_js_putvar_envrec(duk_hthread *thr, duk_hobject *env, duk_hstring *name, duk_tval *val, duk_bool_t strict)
#define DUK_STR_INVALID_TRY
DUK_INTERNAL_DECL void duk_native_stack_check(duk_hthread *thr)
DUK_LOCAL void duk__handle_catch_part1(duk_hthread *thr, duk_tval *tv_val_unstable, duk_small_uint_t lj_type, volatile duk_bool_t *out_delayed_catch_setup)
#define duk_put_prop_stridx_short(thr, obj_idx, stridx)
DUK_INTERNAL_DECL void duk_proxy_ownkeys_postprocess(duk_hthread *thr, duk_hobject *h_proxy_target, duk_uint_t flags)
DUK_INTERNAL_DECL duk_ret_t duk_bi_textencoder_prototype_encoding_getter(duk_context *ctx)
#define DUK_HOBJECT_CLASS_INT32ARRAY
DUK_INTERNAL_DECL duk_hbuffer * duk_get_hbuffer(duk_hthread *thr, duk_idx_t idx)
#define DUK__PUTPROP_BODY(aarg, barg, carg)
DUK_INTERNAL_DECL void duk_hbufobj_validated_write(duk_hthread *thr, duk_hbufobj *h_bufobj, duk_uint8_t *p, duk_small_uint_t elem_size)
DUK_LOCAL DUK_ALWAYS_INLINE void duk__pop_unsafe_raw(duk_hthread *thr)
DUK_LOCAL_DECL void duk__json_dec_buffer(duk_json_dec_ctx *js_ctx)
DUK_LOCAL DUK_EXEC_NOINLINE_PERF duk_instr_t * duk__handle_op_endtry(duk_hthread *thr, duk_uint_fast32_t ins)
DUK_LOCAL void duk__handle_oldenv_for_call(duk_hthread *thr, duk_hobject *func, duk_activation *act)
#define DUK_BW_WRITE_ENSURE_U8(thr, bw_ctx, val)
DUK_INTERNAL_DECL void duk_pop_nodecref_unsafe(duk_hthread *thr)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_encode_xutf8(duk_ucodepoint_t cp, duk_uint8_t *out)
DUK_EXTERNAL void duk_push_global_object(duk_hthread *thr)
DUK_EXTERNAL duk_ret_t duk_reference_error_stash(duk_hthread *thr, const char *fmt,...)
#define DUK_HBUFOBJ_VALID_SLICE(h)
#define DUK_BW_WRITE_RAW_U8_3(thr, bw_ctx, val1, val2, val3)
#define duk_push_hthread(thr, h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_join_shared(duk_context *ctx)
#define DUK_TVAL_INCREF_FAST(thr, tv)
#define DUK_STRIDX_LC_ARGUMENTS
#define DUK_STRIDX_GLOBAL
DUK_INTERNAL_DECL duk_size_t duk_hstring_get_charlen(duk_hstring *h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_reflect_object_get(duk_context *ctx)
DUK_INTERNAL_DECL void duk_push_c_function_builtin_noconstruct(duk_hthread *thr, duk_c_function func, duk_int_t nargs)
DUK_LOCAL const duk_uint8_t duk__token_lbp[]
#define DUK_EXEC_NOINLINE_PERF
DUK_LOCAL duk_small_uint_t duk__get_symbol_type(duk_hstring *h)
DUK_LOCAL double duk__sin(double x)
DUK_LOCAL_DECL void duk__emit_bc(duk_compiler_ctx *comp_ctx, duk_small_uint_t op, duk_regconst_t bc)
DUK_LOCAL void duk__add_enum_key_stridx(duk_hthread *thr, duk_small_uint_t stridx)
#define DUK_HTHREAD_ASSERT_VALID(thr)
DUK_LOCAL void duk__clamp_startend_negidx_shifted(duk_hthread *thr, duk_int_t buffer_length, duk_uint8_t buffer_shift, duk_idx_t idx_start, duk_idx_t idx_end, duk_int_t *out_start_offset, duk_int_t *out_end_offset)
DUK_INTERNAL_DECL duk_bool_t duk_hstring_equals_ascii_cstring(duk_hstring *h, const char *cstr)
DUK_LOCAL DUK_EXEC_NOINLINE_PERF void duk__handle_break_or_continue(duk_hthread *thr, duk_uint_t label_id, duk_small_uint_t lj_type)
DUK_INTERNAL_DECL duk_ret_t duk_bi_function_prototype_apply(duk_context *ctx)
DUK_INTERNAL_DECL duk_bool_t duk_xget_owndataprop_stridx_short_raw(duk_hthread *thr, duk_uint_t packed_args)
#define DUK_HSTRING_NO_ARRAY_INDEX
DUK_INTERNAL void duk_heap_strtable_free(duk_heap *heap)
DUK_INTERNAL_DECL duk_ret_t duk_bi_reflect_object_set(duk_context *ctx)
DUK_LOCAL DUK_NOINLINE void duk__call_callstack_limit_check_slowpath(duk_hthread *thr)
#define DUK_GETDESC_FLAG_PUSH_VALUE
DUK_EXTERNAL duk_bool_t duk_is_lightfunc(duk_hthread *thr, duk_idx_t idx)
#define DUK_COMPARE_FLAG_NEGATE
#define DUK_TOK_IDENTIFIER
DUK_INTERNAL_DECL duk_uint_t duk_get_type_mask_tval(duk_tval *tv)
DUK_INTERNAL_DECL void duk_xdef_prop_index(duk_hthread *thr, duk_idx_t obj_idx, duk_uarridx_t arr_idx, duk_small_uint_t desc_flags)
#define DUK_STR_INVALID_INSTANCEOF_RVAL_NOPROTO
#define DUK_HOBJECT_E_SLOT_IS_ENUMERABLE(heap, h, i)
#define DUK__ADVTOK(advbytes, tok)
DUK_INTERNAL_DECL const char * duk_push_string_readable(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL int duk__bi_is_even(duk__bigint *x)
DUK_LOCAL_DECL duk_bool_t duk__get_propdesc(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_propdesc *out_desc, duk_small_uint_t flags)
DUK_INTERNAL_DECL duk_ret_t duk_bi_duktape_object_act(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_buffer_slice_shared(duk_context *ctx)
DUK_INTERNAL_DECL void duk_push_tval(duk_hthread *thr, duk_tval *tv)
DUK_INTERNAL_DECL duk_size_t duk_hobject_get_length(duk_hthread *thr, duk_hobject *obj)
#define DUK_HTHREAD_STRING_BASE64(thr)
#define DUK_DELPROP_FLAG_THROW
DUK_INTERNAL_DECL duk_ret_t duk_bi_json_object_parse(duk_context *ctx)
#define DUK_BC_CALL_FLAG_INDIRECT
DUK_INTERNAL_DECL void duk_pop_n_nodecref_unsafe(duk_hthread *thr, duk_idx_t count)
#define DUK__EMIT_2(js_ctx, ch1, ch2)
DUK_INTERNAL_DECL void * duk_heap_mem_alloc_checked_zeroed(duk_hthread *thr, duk_size_t size)
DUK_INTERNAL_DECL void duk_bi_json_parse_helper(duk_hthread *thr, duk_idx_t idx_value, duk_idx_t idx_reviver, duk_small_uint_t flags)
DUK_LOCAL void duk__handle_safe_call_error(duk_hthread *thr, duk_activation *entry_act, duk_hthread *entry_curr_thread, duk_uint_fast8_t entry_thread_state, duk_idx_t idx_retbase, duk_idx_t num_stack_rets, duk_size_t entry_valstack_bottom_byteoff, duk_jmpbuf *old_jmpbuf_ptr)
DUK_EXTERNAL const char * duk_push_vsprintf(duk_hthread *thr, const char *fmt, va_list ap)
DUK_EXTERNAL void duk_throw_raw(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_call_setup_propcall_error(duk_hthread *thr, duk_tval *tv_base, duk_tval *tv_key)
#define DUK_HOBJECT_FLAG_HAVE_FINALIZER
DUK_INTERNAL_DECL duk_ret_t duk_bi_buffer_readfield(duk_context *ctx)
DUK_EXTERNAL duk_c_function duk_get_c_function_default(duk_hthread *thr, duk_idx_t idx, duk_c_function def_value)
DUK_INTERNAL_DECL duk_bool_t duk_js_delvar_activation(duk_hthread *thr, duk_activation *act, duk_hstring *name)
DUK_INTERNAL_DECL void duk_raw_writeinc_u16_be(duk_uint8_t **p, duk_uint16_t val)
#define DUK_STRIDX_UC_BOOLEAN
DUK_EXTERNAL void * duk_get_buffer_data_default(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size, void *def_ptr, duk_size_t def_size)
#define DUK_TVAL_SET_OBJECT(tv, hptr)
DUK_LOCAL duk_bool_t duk__getid_open_decl_env_regs(duk_hthread *thr, duk_hstring *name, duk_hdecenv *env, duk__id_lookup_result *out)
DUK_INTERNAL_DECL duk_ret_t duk_bi_textdecoder_prototype_shared_getter(duk_context *ctx)
#define DUK__MAX_OBJECT_INIT_PAIRS
DUK_LOCAL void duk__cbor_encode_objarr_entry(duk_cbor_encode_context *enc_ctx)
#define DUK_STRDATA_MAX_STRLEN
DUK_EXTERNAL duk_bool_t duk_has_prop_literal_raw(duk_hthread *thr, duk_idx_t obj_idx, const char *key, duk_size_t key_len)
#define DUK_STR_INVALID_SWITCH
DUK_LOCAL_DECL duk_double_t duk__push_this_get_timeval(duk_hthread *thr, duk_small_uint_t flags)
#define DUK__CF_ACCEPT_NUL
DUK_INTERNAL_DECL duk_ret_t duk_bi_type_error_thrower(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_regexp_constructor(duk_context *ctx)
#define DUK_HOBJECT_CLASS_POINTER
#define DUK_HOBJECT_GET_ENEXT(h)
DUK_LOCAL duk_hstring * duk__str_tostring_notregexp(duk_hthread *thr, duk_idx_t idx)
#define DUK_ACT_FLAG_BREAKPOINT_ACTIVE
#define DUK_HOBJECT_SET_EXOTIC_STRINGOBJ(h)
DUK_INTERNAL_DECL duk_bool_t duk_xget_owndataprop(duk_hthread *thr, duk_idx_t obj_idx)
#define DUK_HOBJECT_CLASS_BUFOBJ_MIN
#define DUK_STRIDX_DATA_VIEW
DUK_INTERNAL_DECL void duk_js_putvar_activation(duk_hthread *thr, duk_activation *act, duk_hstring *name, duk_tval *val, duk_bool_t strict)
DUK_INTERNAL_DECL void * duk_heap_mem_realloc_indirect(duk_heap *heap, duk_mem_getptr cb, void *ud, duk_size_t newsize)
#define DUK__GETPROP_BODY(barg, carg)
#define DUK_HBUFFER_EXTERNAL_SET_SIZE(x, v)
#define DUK__FUNC_FLAG_PUSHNAME_PASS1
#define DUK_STR_CANNOT_STRING_COERCE_SYMBOL
#define DUK__MAX_ARRAY_INIT_VALUES
#define DUK_UNICODE_CP_ZWNJ
#define DUK__JSON_DECSTR_CHUNKSIZE
#define DUK_HBUFOBJ_ELEM_UINT8CLAMPED
#define DUK__MAX_FORMATTED_LENGTH
DUK_LOCAL duk_heaphdr * duk__getrequire_bufobj_this(duk_hthread *thr, duk_small_uint_t flags)
DUK_INTERNAL_DECL void duk_hobject_refcount_finalize_norz(duk_heap *heap, duk_hobject *h)
#define DUK_ASSERT_REFCOUNT_NONZERO_HEAPHDR(h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_prevent_extensions(duk_context *ctx)
DUK_LOCAL_DECL void duk__emit_hstring(duk_json_enc_ctx *js_ctx, duk_hstring *h)
#define DUK_STRIDX_MINUS_INFINITY
#define DUK_HSTRING_HAS_RESERVED_WORD(x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_arraybuffer_isview(duk_context *ctx)
DUK_LOCAL void duk__set_bufobj_buffer(duk_hthread *thr, duk_hbufobj *h_bufobj, duk_hbuffer *h_val)
#define DUK_DBLUNION_SET_DOUBLE(u, v)
#define DUK_ERROR_REFERENCE(thr, msg)
#define DUK_BW_SET_SIZE(thr, bw_ctx, sz)
DUK_LOCAL_DECL duk_int_t duk__stmt_label_site(duk_compiler_ctx *comp_ctx, duk_int_t label_id)
DUK_LOCAL duk_bool_t duk__lookup_arguments_map(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_propdesc *temp_desc, duk_hobject **out_map, duk_hobject **out_varenv)
#define DUK_TVAL_GET_OBJECT(tv)
DUK_EXTERNAL void duk_push_this(duk_hthread *thr)
#define DUK_HOBJECT_CLASS_NUMBER_TO_STRIDX(n)
#define DUK_STRIDX_WELLKNOWN_SYMBOL_HAS_INSTANCE
DUK_INTERNAL_DECL duk_bool_t duk_js_instanceof(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y)
#define DUK_OP_PREDECP_RR
DUK_LOCAL_DECL void duk__init_func_valstack_slots(duk_compiler_ctx *comp_ctx)
DUK_EXTERNAL const char * duk_opt_string(duk_hthread *thr, duk_idx_t idx, const char *def_ptr)
DUK_LOCAL void duk__bi_mul(duk__bigint *x, duk__bigint *y, duk__bigint *z)
#define DUK_HOBJECT_GET_PROPS(heap, h)
#define DUK_STR_INVALID_VAR_DECLARATION
DUK_EXTERNAL duk_bool_t duk_del_prop_heapptr(duk_hthread *thr, duk_idx_t obj_idx, void *ptr)
#define DUK_STRIDX_JSON_EXT_UNDEFINED
DUK_INTERNAL_DECL duk_ret_t duk_bi_error_prototype_linenumber_getter(duk_context *ctx)
#define DUK_HEAPHDR_CHECK_FLAG_BITS(h, bits)
DUK_INTERNAL_DECL void duk_err_augment_error_create(duk_hthread *thr, duk_hthread *thr_callstack, const char *filename, duk_int_t line, duk_small_uint_t flags)
#define DUK__IVAL_FLAG_ALLOW_CONST
#define DUK_DBG_CMD_GETCALLSTACK
DUK_EXTERNAL duk_idx_t duk_get_top(duk_hthread *thr)
#define DUK_OP_PREINCP_CC
DUK_LOCAL duk_uint_t duk__strtable_litcache_key(const duk_uint8_t *str, duk_uint32_t blen)
DUK_INTERNAL_DECL void duk_regexp_match(duk_hthread *thr)
#define DUK_LOWERCASE_CHAR_ASCII(x)
DUK_EXTERNAL duk_bool_t duk_is_external_buffer(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF void duk__prepost_incdec_reg_helper(duk_hthread *thr, duk_tval *tv_dst, duk_tval *tv_src, duk_small_uint_t op)
DUK_INTERNAL_DECL duk_hstring * duk_hobject_get_internal_value_string(duk_heap *heap, duk_hobject *obj)
#define DUK_HOBJECT_E_GET_KEY_BASE(heap, h)
DUK_LOCAL duk_uint32_t duk__get_min_grow_a(duk_uint32_t a_size)
DUK_INTERNAL_DECL duk_hobject * duk_require_hobject_with_class(duk_hthread *thr, duk_idx_t idx, duk_small_uint_t classnum)
DUK_LOCAL_DECL void duk__emit(duk_compiler_ctx *comp_ctx, duk_instr_t ins)
DUK_EXTERNAL duk_bool_t duk_check_stack(duk_hthread *thr, duk_idx_t extra)
#define DUK_HOBJECT_FLAG_NOTAIL
DUK_LOCAL void duk__clamp_startend_nonegidx_noshift(duk_hthread *thr, duk_int_t buffer_length, duk_idx_t idx_start, duk_idx_t idx_end, duk_int_t *out_start_offset, duk_int_t *out_end_offset)
DUK_EXTERNAL void * duk_opt_buffer_data(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size, void *def_ptr, duk_size_t def_size)
#define DUK_OP_POSTDECP_RR
DUK_EXTERNAL duk_hthread * duk_get_context_default(duk_hthread *thr, duk_idx_t idx, duk_hthread *def_value)
DUK_INTERNAL_DECL duk_ret_t duk_bi_duktape_object_fin(duk_context *ctx)
#define DUK_HOBJECT_E_GET_FLAGS_BASE(heap, h)
#define DUK_HEAP_NUM_STRINGS
DUK_LOCAL void duk__cbor_encode_pointer(duk_cbor_encode_context *enc_ctx)
DUK_EXTERNAL duk_bool_t duk_is_constructable(duk_hthread *thr, duk_idx_t idx)
#define DUK_DBG_ERR_UNKNOWN
#define DUK_STR_INVALID_REGEXP_CHARACTER
#define DUK__STRPTIME_BUF_SIZE
#define DUK_LEXER_WINDOW_SIZE
#define DUK_BIDX_INT8ARRAY_PROTOTYPE
#define DUK_STR_INVALID_TRAP_RESULT
DUK_EXTERNAL duk_c_function duk_require_c_function(duk_hthread *thr, duk_idx_t idx)
#define DUK_HEAPHDR_FLAG_READONLY
DUK_INTERNAL_DECL void duk_remove_unsafe(duk_hthread *thr, duk_idx_t idx)
#define DUK_RETOK_ATOM_WORD_CHAR
DUK_LOCAL double duk__trunc(double x)
DUK_LOCAL void duk__bi_normalize(duk__bigint *x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_constructor(duk_context *ctx)
#define DUK__SETTEMP(comp_ctx, x)
#define DUK_RETOK_ATOM_START_CHARCLASS
#define DUK__GETTEMP(comp_ctx)
DUK_LOCAL duk_uint_fast32_t duk__hobject_pc2line_query_raw(duk_hthread *thr, duk_hbuffer_fixed *buf, duk_uint_fast32_t pc)
#define DUK_HBUFFER_FIXED_GET_SIZE(x)
#define DUK_HOBJECT_CLEAR_HAVE_FINALIZER(h)
#define DUK_HOBJECT_CLASS_OBJECT
#define DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(heap, h, i)
#define DUK_REFZERO_CHECK_FAST(thr)
#define DUK_STRIDX_SOURCE
#define DUK_HOBJENV_ASSERT_VALID(h)
DUK_LOCAL duk_hstring * duk__strtable_do_intern(duk_heap *heap, const duk_uint8_t *str, duk_uint32_t blen, duk_uint32_t strhash)
#define DUK_HCOMPFUNC_SET_VARENV(heap, h, v)
DUK_LOCAL void duk__refcount_free_pending(duk_heap *heap)
DUK_LOCAL duk_uint8_t * duk__dump_formals(duk_hthread *thr, duk_uint8_t *p, duk_bufwriter_ctx *bw_ctx, duk_hobject *func)
DUK_EXTERNAL duk_int_t duk_api_global_line
#define DUK_STR_SETTER_UNDEFINED
DUK_INTERNAL DUK_COLD void duk_err_handle_error_fmt(duk_hthread *thr, const char *filename, duk_uint_t line_and_code, const char *fmt,...)
DUK_INTERNAL_DECL duk_float_t duk_raw_readinc_float_be(const duk_uint8_t **p)
DUK_LOCAL DUK__RZ_INLINE void duk__hobject_refzero_helper(duk_hthread *thr, duk_hobject *h, duk_bool_t skip_free_pending)
struct duk_hbuffer_dynamic duk_hbuffer_dynamic
DUK_INTERNAL_DECL void duk_hobject_refzero_norz(duk_hthread *thr, duk_hobject *h)
#define DUK_BIDX_OBJECT_PROTOTYPE
#define DUK_STR_STRICT_CALLER_READ
DUK_LOCAL duk_harray * duk__arraypart_fastpath_this(duk_hthread *thr)
DUK_LOCAL DUK_INLINE void duk__cbor_encode_ensure(duk_cbor_encode_context *enc_ctx, duk_size_t len)
DUK_LOCAL_DECL void duk__emit_stridx(duk_json_enc_ctx *js_ctx, duk_small_uint_t stridx)
#define DUK_COMPILER_TOKEN_LIMIT
#define DUK_STRIDX_INT_NEXT
DUK_LOCAL duk_hbufobj * duk__require_bufobj_this(duk_hthread *thr)
#define DUK_HARRAY_SET_LENGTH_NONWRITABLE(h)
DUK_INTERNAL_DECL void duk_js_close_environment_record(duk_hthread *thr, duk_hobject *env)
#define DUK_HOBJECT_A_GET_BASE(heap, h)
DUK_INTERNAL_DECL duk_hobject * duk_create_activation_environment_record(duk_hthread *thr, duk_hobject *func, duk_size_t bottom_byteoff)
#define DUK__READABLE_ERRMSG_MAXCHARS
#define duk_xget_owndataprop_stridx_short(thr, obj_idx, stridx)
DUK_LOCAL void duk__err_augment_builtin_create(duk_hthread *thr, duk_hthread *thr_callstack, const char *c_filename, duk_int_t c_line, duk_hobject *obj, duk_small_uint_t flags)
DUK_INTERNAL_DECL duk_harray * duk_push_harray(duk_hthread *thr)
#define DUK_CAT_CLEAR_CATCH_ENABLED(c)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_is(duk_context *ctx)
DUK_EXTERNAL void duk_require_undefined(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL void duk_hobject_pc2line_pack(duk_hthread *thr, duk_compiler_instr *instrs, duk_uint_fast32_t length)
#define DUK_STRIDX_FLOAT32_ARRAY
DUK_INTERNAL_DECL void duk_fltunion_host_to_big(duk_float_union *u)
DUK_EXTERNAL void duk_free_raw(duk_hthread *thr, void *ptr)
#define DUK_BIDX_TYPE_ERROR_PROTOTYPE
DUK_LOCAL duk_uint32_t duk__uni_decode_value(duk_bitdecoder_ctx *bd_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_function_prototype(duk_context *ctx)
DUK_INTERNAL_DECL int duk_repl_isinf(double x)
DUK_LOCAL_DECL duk_int_t duk__emit_jump_empty(duk_compiler_ctx *comp_ctx)
#define DUK_TVAL_IS_NULL(tv)
#define DUK_HOBJECT_IS_COMPFUNC(h)
#define DUK_STRIDX_LINE_NUMBER
#define DUK_S2N_FLAG_ALLOW_MINUS
DUK_INTERNAL_DECL duk_double_t duk_time_get_monotonic_time(duk_hthread *thr)
#define DUK_HBUFFER_MAX_BYTELEN
#define DUK_OP_POSTINCP_RC
#define DUK_REOP_ASSERT_END
DUK_LOCAL_DECL void duk__parse_func_like_raw(duk_compiler_ctx *comp_ctx, duk_small_uint_t flags)
DUK_LOCAL void duk__mark_temproots_by_heap_scan(duk_heap *heap)
DUK_LOCAL const duk_uint_t duk__type_mask_from_tag[]
DUK_LOCAL_DECL void duk__parse_try_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
#define DUK_STRIDX_WELLKNOWN_SYMBOL_TO_PRIMITIVE
DUK_INTERNAL_DECL duk_hobject * duk_get_hobject_with_class(duk_hthread *thr, duk_idx_t idx, duk_small_uint_t classnum)
DUK_LOCAL DUK_COLD DUK_NOINLINE duk_bool_t duk__resize_valstack(duk_hthread *thr, duk_size_t new_size)
#define DUK__ENUM_START_INDEX
#define DUK__EMIT_CSTR(js_ctx, p)
DUK_INTERNAL_DECL void duk_compact_m1(duk_hthread *thr)
#define DUK_HOBJECT_SET_EXOTIC_ARGUMENTS(h)
DUK_LOCAL duk_tval * duk__getprop_shallow_fastpath_array_tval(duk_hthread *thr, duk_hobject *obj, duk_tval *tv_key)
#define DUK_STRIDX_ERR_CREATE
#define DUK__STILL_PROLOGUE
DUK_EXTERNAL void duk_set_magic(duk_hthread *thr, duk_idx_t idx, duk_int_t magic)
DUK_LOCAL void duk__lexer_skip_to_endofline(duk_lexer_ctx *lex_ctx)
DUK_LOCAL int duk__cbor_decode_checkbreak(duk_cbor_decode_context *dec_ctx)
#define DUK__INITBUFFER(lex_ctx)
#define DUK_HNATFUNC_NARGS_VARARGS
DUK_INTERNAL_DECL duk_small_int_t duk_memcmp(const void *s1, const void *s2, duk_size_t len)
#define DUK_HEAP_REMOVE_FROM_FINALIZE_LIST(heap, hdr)
DUK_LOCAL_DECL duk_regconst_t duk__ivalue_toreg(duk_compiler_ctx *comp_ctx, duk_ivalue *x)
DUK_EXTERNAL duk_bool_t duk_is_dynamic_buffer(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL const char * duk_require_lstring(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_len)
DUK_INTERNAL_DECL duk_idx_t duk_get_top_index_unsafe(duk_hthread *thr)
#define DUK__BP_EXPONENTIATION
DUK_LOCAL duk_ret_t duk__finalize_helper(duk_hthread *thr, void *udata)
DUK_LOCAL_DECL void duk__expr_nud(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
#define DUK_TVAL_IS_BUFFER(tv)
#define DUK_S2N_FLAG_ALLOW_EMPTY_FRAC
DUK_EXTERNAL duk_hthread * duk_opt_context(duk_hthread *thr, duk_idx_t idx, duk_hthread *def_value)
DUK_INTERNAL_DECL duk_ret_t duk_bi_duktape_object_compact(duk_context *ctx)
#define DUK_STRIDX_UC_NUMBER
#define DUK_TVAL_IS_DOUBLE(tv)
#define DUK_RAW_READINC_U32_BE(ptr)
#define DUK_HEAPHDR_GET_PREV(heap, h)
DUK_EXTERNAL void duk_hex_decode(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL void duk__handle_temproot(duk_heap *heap, duk_heaphdr *hdr)
DUK_EXTERNAL duk_idx_t duk_require_normalize_index(duk_hthread *thr, duk_idx_t idx)
#define DUK_TVAL_SET_BOOLEAN_FALSE(tv)
DUK_EXTERNAL duk_bool_t duk_samevalue(duk_hthread *thr, duk_idx_t idx1, duk_idx_t idx2)
DUK_EXTERNAL void duk_require_object(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_write(duk_context *ctx)
#define DUK__REMOVECONST(x)
DUK_INTERNAL_DECL duk_small_uint_t duk_bd_decode_flag(duk_bitdecoder_ctx *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_native_function_name(duk_context *ctx)
DUK_INTERNAL_DECL void duk_hthread_activation_free(duk_hthread *thr, duk_activation *act)
#define DUK_HOBJECT_GET_CLASS_MASK(h)
#define DUK_PUSH_SPRINTF_SANITY_LIMIT
DUK_INTERNAL_DECL void duk_to_primitive_ordinary(duk_hthread *thr, duk_idx_t idx, duk_int_t hint)
DUK_LOCAL double duk__atan2_fixed(double x, double y)
DUK_INTERNAL_DECL duk_ret_t duk_bi_regexp_prototype_test(duk_context *ctx)
DUK_LOCAL void * duk__hobject_alloc_init(duk_hthread *thr, duk_uint_t hobject_flags, duk_size_t size)
DUK_INTERNAL_DECL void duk_push_string_funcptr(duk_hthread *thr, duk_uint8_t *ptr, duk_size_t sz)
#define DUK__NUMCONV_CTX_BIGINTS_SIZE
static const duk_uint8_t duk__buffer_class_from_elemtype[9]
#define DUK_STRIDX_START_RESERVED
#define DUK_BIDX_DOUBLE_ERROR
#define DUK_HEAPHDR_GET_FLAGS_RAW(h)
DUK_INTERNAL_DECL void duk_be_encode(duk_bitencoder_ctx *ctx, duk_uint32_t data, duk_small_int_t bits)
DUK_LOCAL void duk__array_qsort(duk_hthread *thr, duk_int_t lo, duk_int_t hi)
DUK_INTERNAL_DECL void duk_heap_switch_thread(duk_heap *heap, duk_hthread *new_thr)
#define DUK_STR_INVALID_REGEXP_ESCAPE
DUK_INTERNAL_DECL duk_ret_t duk_textdecoder_decode_utf8_nodejs(duk_hthread *thr)
#define DUK_LFUNC_LENGTH_MAX
DUK_EXTERNAL void duk_gc(duk_hthread *thr, duk_uint_t flags)
#define DUK_TVAL_SET_UNUSED_UPDREF
#define DUK_STR_VALSTACK_LIMIT
DUK_LOCAL_DECL void duk__json_dec_req_stridx(duk_json_dec_ctx *js_ctx, duk_small_uint_t stridx)
#define DUK__JSON_DECSTR_BUFSIZE
DUK_LOCAL_DECL void duk__mark_heaphdr(duk_heap *heap, duk_heaphdr *h)
#define DUK_BW_COMPACT(thr, bw_ctx)
DUK_INTERNAL_DECL duk_int32_t duk_bd_decode_flagged_signed(duk_bitdecoder_ctx *ctx, duk_small_int_t bits, duk_int32_t def_value)
#define DUK__APPENDBUFFER_ASCII(lex_ctx, x)
DUK_INTERNAL_DECL duk_bool_t duk_double_is_nan_or_inf(duk_double_t x)
#define DUK_HEAPHDR_SET_PREV(heap, h, val)
#define DUK_HEAPHDR_SET_FINALIZABLE(h)
#define DUK_HOBJECT_HAS_EXOTIC_STRINGOBJ(h)
struct duk_hthread duk_hthread
DUK_LOCAL_DECL void duk__json_dec_reviver_walk(duk_json_dec_ctx *js_ctx)
#define DUK_DECL_TYPE_FUNC
DUK_LOCAL void duk__bi_add(duk__bigint *x, duk__bigint *y, duk__bigint *z)
#define DUK_STRIDX_MESSAGE
DUK_LOCAL DUK_ALWAYS_INLINE void duk__pop_n_unsafe_raw(duk_hthread *thr, duk_idx_t count)
#define DUK_STR_INVALID_QUANTIFIER_NO_ATOM
DUK_LOCAL DUK_NOINLINE_PERF DUK_COLD void * duk__heap_mem_alloc_slowpath(duk_heap *heap, duk_size_t size)
DUK_INTERNAL_DECL void duk_hobject_refzero(duk_hthread *thr, duk_hobject *h)
#define DUK_STR_INVALID_QUANTIFIER
DUK_INTERNAL_DECL duk_bool_t duk_is_string_notsymbol(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL void duk__inc_data_inner_refcounts(duk_hthread *thr, duk_hcompfunc *f)
#define DUK_STR_UNEXPECTED_REGEXP_TOKEN
DUK_INTERNAL_DECL duk_ret_t duk_bi_dataview_constructor(duk_context *ctx)
#define DUK_STRIDX_FILE_NAME
DUK_LOCAL void duk__cbor_encode_objarr_exit(duk_cbor_encode_context *enc_ctx)
#define DUK_TVAL_IS_UNDEFINED(tv)
DUK_LOCAL duk_hobject * duk__hobject_get_entry_object_stridx(duk_heap *heap, duk_hobject *obj, duk_small_uint_t stridx)
DUK_INTERNAL_DECL duk_bool_t duk_is_callable_tval(duk_hthread *thr, duk_tval *tv)
#define DUK__EXPR_FLAG_REJECT_IN
DUK_LOCAL_DECL void duk__parse_if_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
#define DUK__EXPR_FLAG_ALLOW_EMPTY
#define DUK_STRIDX_TO_GMT_STRING
#define DUK_BW_SETPTR_AND_COMPACT(thr, bw_ctx, ptr)
DUK_LOCAL duk_uint32_t duk__parse_regexp_flags(duk_hthread *thr, duk_hstring *h)
#define DUK_TVAL_SET_UNUSED(tv)
DUK_EXTERNAL duk_bool_t duk_has_prop_lstring(duk_hthread *thr, duk_idx_t obj_idx, const char *key, duk_size_t key_len)
#define DUK_STR_UNTERMINATED_CHARCLASS
#define DUK_EQUALS_FLAG_SAMEVALUE
#define DUK_RE_FLAG_MULTILINE
#define DUK_TVAL_GET_LIGHTFUNC_FUNCPTR(tv)
DUK_EXTERNAL void duk_swap_top(duk_hthread *thr, duk_idx_t idx)
#define DUK_GC_TORTURE(heap)
DUK_EXTERNAL void duk_require_stack_top(duk_hthread *thr, duk_idx_t top)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_shift(duk_context *ctx)
DUK_INTERNAL_DECL void duk_bi_date_timeval_to_parts(duk_double_t d, duk_int_t *parts, duk_double_t *dparts, duk_small_uint_t flags)
DUK_LOCAL void duk__comp_recursion_increase(duk_compiler_ctx *comp_ctx)
DUK_INTERNAL_DECL void duk_refzero_check_slow(duk_hthread *thr)
const duk_uint8_t duk_unicode_caseconv_uc[1411]
DUK_LOCAL_DECL void duk__nud_array_literal(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
DUK_INTERNAL_DECL duk_activation * duk_hthread_activation_alloc(duk_hthread *thr)
DUK_LOCAL_DECL duk_regconst_t duk__exprtop_toregconst(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t rbp_flags)
DUK_INTERNAL_DECL duk_hobject * duk_require_hobject_promote_mask(duk_hthread *thr, duk_idx_t idx, duk_uint_t type_mask)
#define DUK_HEAP_MAX_BREAKPOINTS
DUK_LOCAL_DECL void duk__unemit_1(duk_json_enc_ctx *js_ctx)
#define DUK__MKBITS(a, b, c, d, e, f, g, h)
#define DUK_HTHREAD_INTCTR_DEFAULT
#define DUK_LEXER_GETPOINT(ctx, pt)
#define DUK_BIDX_POINTER_PROTOTYPE
#define DUK_SYMBOL_TYPE_WELLKNOWN
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_startswith_endswith(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_put_global_string(duk_hthread *thr, const char *key)
#define DUK_HEAPHDR_CLEAR_FINALIZABLE(h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_pop(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_number_prototype_to_exponential(duk_context *ctx)
DUK_LOCAL void duk__dragon4_double_to_ctx(duk__numconv_stringify_ctx *nc_ctx, duk_double_t x)
#define DUK_BW_SLACK_SHIFT
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor(duk_context *ctx)
DUK_LOCAL_DECL void duk__emit_b_c(duk_compiler_ctx *comp_ctx, duk_small_uint_t op_flags, duk_regconst_t b, duk_regconst_t c)
DUK_LOCAL duk_double_t duk__cbor_decode_half_float(duk_cbor_decode_context *dec_ctx)
#define DUK_TVAL_SET_BUFFER(tv, hptr)
DUK_EXTERNAL duk_bool_t duk_is_fixed_buffer(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL DUK_ALWAYS_INLINE duk_double_t duk__get_number_raw(duk_hthread *thr, duk_idx_t idx, duk_double_t def_value)
#define DUK_TVAL_SET_U32_UPDREF_NORZ(thr, tv_dst, val)
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_is_encoding(duk_context *ctx)
DUK_INTERNAL_DECL void duk_copy_tvals_incref(duk_hthread *thr, duk_tval *tv_dst, duk_tval *tv_src, duk_size_t count)
#define DUK_TVAL_IS_OBJECT(tv)
#define DUK_STR_UNTERMINATED_STRING
#define DUK_HOBJECT_IS_OBJENV(h)
#define DUK_HOBJECT_CLASS_INT16ARRAY
DUK_EXTERNAL duk_double_t duk_to_number(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL DUK_COLD void duk_err_require_type_index(duk_hthread *thr, const char *filename, duk_int_t linenumber, duk_idx_t idx, const char *expect_name)
#define DUK_HSTRING_FLAG_EVAL_OR_ARGUMENTS
#define DUK_HEAPHDR_FLAG_TEMPROOT
#define DUK_JSON_FLAG_AVOID_KEY_QUOTES
#define DUK_HBUFOBJ_ELEM_INT16
DUK_EXTERNAL void duk_config_buffer(duk_hthread *thr, duk_idx_t idx, void *ptr, duk_size_t len)
DUK_LOCAL_DECL void duk__expr_led(duk_compiler_ctx *comp_ctx, duk_ivalue *left, duk_ivalue *res)
#define DUK_REFZERO_CHECK_SLOW(thr)
#define DUK_HBUFFER_DECREF_NORZ_ALLOWNULL(thr, h)
DUK_EXTERNAL const char * duk_to_stacktrace(duk_hthread *thr, duk_idx_t idx)
#define DUK_HOBJECT_CLASS_BUFOBJ_MAX
#define DUK_HOBJECT_SET_CREATEARGS(h)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_encode_cesu8(duk_ucodepoint_t cp, duk_uint8_t *out)
DUK_LOCAL const duk_int8_t duk__base64_decode_nequal_step[5]
#define DUK__CONSTP_B(ins)
#define DUK_DBG_IB_UNUSED
DUK_INTERNAL_DECL void duk_hthread_activation_unwind_norz(duk_hthread *thr)
#define DUK_HOBJECT_HAS_CREATEARGS(h)
#define DUK_BW_ENSURE(thr, bw_ctx, sz)
#define DUK_JSON_ENC_REQSTACK
DUK_LOCAL const duk__two_arg_func duk__two_arg_funcs[]
DUK_INTERNAL_DECL duk_bool_t duk_get_method_stridx(duk_hthread *thr, duk_idx_t idx, duk_small_uint_t stridx)
#define DUK_STRIDX_CONSTRUCT
#define DUK_ERROR_SYNTAX(thr, msg)
#define DUK_BIDX_FUNCTION_PROTOTYPE
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_char_code_at(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_put_global_literal_raw(duk_hthread *thr, const char *key, duk_size_t key_len)
DUK_INTERNAL_DECL duk_hobject * duk_known_hobject(duk_hthread *thr, duk_idx_t idx)
#define DUK_PROPDESC_FLAGS_NONE
#define DUK__JSON_STRINGIFY_BUFSIZE
DUK_EXTERNAL duk_int_t duk_safe_call(duk_hthread *thr, duk_safe_call_function func, void *udata, duk_idx_t nargs, duk_idx_t nrets)
#define DUK_HBUFOBJ_HAS_VIRTUAL_INDICES(h)
#define DUK_HOBJECT_CMASK_STRING
#define DUK_TVAL_GET_BUFFER(tv)
#define DUK_PROPDESC_FLAG_VIRTUAL
DUK_INTERNAL_DECL void * duk_heap_mem_realloc(duk_heap *heap, void *ptr, duk_size_t newsize)
DUK_LOCAL void duk__bi_set_small(duk__bigint *x, duk_uint32_t v)
#define DUK_HEAP_INSERT_INTO_HEAP_ALLOCATED(heap, hdr)
double(* duk__two_arg_func)(double, double)
DUK_INTERNAL_DECL duk_bool_t duk_js_in(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y)
DUK_EXTERNAL duk_bool_t duk_has_prop_heapptr(duk_hthread *thr, duk_idx_t obj_idx, void *ptr)
#define DUK_BI_DATE_ISO8601_BUFSIZE
#define DUK_ASSERT_API_ENTRY(thr)
#define DUK_STR_CANNOT_NUMBER_COERCE_SYMBOL
#define DUK_TVAL_SET_TVAL_UPDREF_FAST
DUK_LOCAL_DECL void duk__parse_with_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
#define DUK_STR_BUFFER_TOO_LONG
DUK_EXTERNAL void duk_push_null(duk_hthread *thr)
#define DUK__BP_RELATIONAL
#define DUK__INSTOF_BODY(barg, carg)
DUK_LOCAL duk_bool_t duk__handle_specialfuncs_for_call(duk_hthread *thr, duk_idx_t idx_func, duk_hobject *func, duk_small_uint_t *call_flags, duk_bool_t first)
DUK_EXTERNAL duk_bool_t duk_strict_equals(duk_hthread *thr, duk_idx_t idx1, duk_idx_t idx2)
#define DUK_TVAL_SET_NULL_UPDREF
DUK_EXTERNAL void duk_freeze(duk_hthread *thr, duk_idx_t obj_idx)
DUK_LOCAL duk_uint32_t duk__push_tval_to_property_key(duk_hthread *thr, duk_tval *tv_key, duk_hstring **out_h)
DUK_INTERNAL_DECL duk_bool_t duk_js_instanceof_ordinary(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y)
#define DUK_TVAL_SET_OBJECT_UPDREF
DUK_LOCAL DUK_ALWAYS_INLINE void duk__base64_encode_fast_2(const duk_uint8_t *src, duk_uint8_t *dst)
#define DUK_STRIDX_WRITABLE
DUK_EXTERNAL const char * duk_to_string(duk_hthread *thr, duk_idx_t idx)
#define DUK_BIDX_DATAVIEW_PROTOTYPE
struct duk_hnatfunc duk_hnatfunc
#define DUK_STRIDX_DEC_ENV
DUK_LOCAL duk_uint32_t duk__get_min_grow_e(duk_uint32_t e_size)
DUK_EXTERNAL void duk_require_constructable(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_number_check_shared(duk_context *ctx)
DUK_LOCAL DUK_NOINLINE void duk__numconv_parse_raw(duk_hthread *thr, duk_small_int_t radix, duk_small_uint_t flags)
void(* duk__transform_callback)(duk__transform_context *tfm_ctx, const void *udata, duk_codepoint_t cp)
DUK_INTERNAL const duk_uint8_t duk_uc_nybbles[16]
DUK_LOCAL DUK_NOINLINE duk_activation * duk__hthread_activation_alloc_slow(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_tval_set_number_chkfast_fast(duk_tval *tv, duk_double_t x)
DUK_LOCAL void duk__add_traceback(duk_hthread *thr, duk_hthread *thr_callstack, const char *c_filename, duk_int_t c_line, duk_small_uint_t flags)
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_sign(duk_context *ctx)
DUK_INTERNAL_DECL duk_double_t duk_js_tointeger(duk_hthread *thr, duk_tval *tv)
#define DUK_DBLUNION_GET_DOUBLE(u)
DUK_INTERNAL_DECL void duk_bw_init(duk_hthread *thr, duk_bufwriter_ctx *bw_ctx, duk_hbuffer_dynamic *h_buf)
#define DUK_HTHREAD_STRING___PROTO__(thr)
#define DUK_STRIDX_LC_FUNCTION
DUK_INTERNAL_DECL duk_bool_t duk_put_prop_stridx(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t stridx)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_is_whitespace(duk_codepoint_t cp)
#define DUK_STR_INVALID_ESCAPE
#define DUK_HOBJECT_CLASS_FUNCTION
DUK_LOCAL duk_small_int_t duk__bi_is_2to52(duk__bigint *x)
DUK_EXTERNAL void duk_call(duk_hthread *thr, duk_idx_t nargs)
#define DUK_DBLUNION_IS_NORMALIZED(u)
DUK_LOCAL void duk__cbor_encode_object(duk_cbor_encode_context *enc_ctx)
DUK_INTERNAL_DECL void duk_heap_strtable_unlink(duk_heap *heap, duk_hstring *h)
#define DUK_HOBJECT_HASHIDX_UNUSED
#define DUK_HOBJECT_SET_PROPS(heap, h, x)
#define DUK_ASC_BACKSLASH
#define DUK_ENC_OP_A_B_C(op, a, b, c)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF void duk__vm_logical_not(duk_hthread *thr, duk_uint_fast_t idx_src, duk_uint_fast_t idx_dst)
DUK_LOCAL void duk__append_reop(duk_re_compiler_ctx *re_ctx, duk_uint32_t reop)
#define DUK_HEAPHDR_SET_FINALIZED(h)
DUK_LOCAL void duk__cbor_decode_buffer(duk_cbor_decode_context *dec_ctx, duk_uint8_t expected_base)
#define DUK_CALL_FLAG_ALLOW_ECMATOECMA
#define DUK_TVAL_SET_TVAL_UPDREF_NORZ(thr, tv_dst, tv_src)
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_clz32(duk_context *ctx)
#define DUK_HOBJECT_HAS_VIRTUAL_PROPERTIES(h)
#define DUK_DBLUNION_SET_HIGH32(u, v)
#define DUK_STRDATA_DATA_LENGTH
#define DUK_PROPDESC_FLAGS_EC
struct duk_compiler_instr duk_compiler_instr
#define DUK_STRIDX_OWN_KEYS
#define DUK_HEAP_DBG_RATELIMIT_OPCODES
DUK_LOCAL duk_double_t duk__push_this_number_plain(duk_hthread *thr)
DUK_INTERNAL_DECL duk_tval * duk_get_borrowed_this_tval(duk_hthread *thr)
DUK_EXTERNAL void duk_require_valid_index(duk_hthread *thr, duk_idx_t idx)
#define DUK_HEAPHDR_PREDEC_REFCOUNT(h)
#define DUK_TB_FLAG_NOBLAME_FILELINE
DUK_LOCAL_DECL void duk__json_dec_number(duk_json_dec_ctx *js_ctx)
DUK_LOCAL duk_idx_t duk__call_get_idx_func(duk_hthread *thr, duk_idx_t nargs, duk_idx_t other)
DUK_LOCAL int duk__bi_is_zero(duk__bigint *x)
DUK_LOCAL DUK_INLINE void duk__coerce_nonstrict_this_binding(duk_hthread *thr, duk_idx_t idx_this)
DUK_INTERNAL_DECL void duk_push_hstring_empty(duk_hthread *thr)
#define DUK_HSTRING_GET_CHARLEN(x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_function_prototype_hasinstance(duk_context *ctx)
DUK_LOCAL const duk_uint8_t duk__json_eatwhite_lookup[256]
#define DUK_OP_POSTINCP_CC
DUK_INTERNAL_DECL void duk_xdef_prop(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t desc_flags)
DUK_LOCAL_DECL void duk__copy_ispec(duk_compiler_ctx *comp_ctx, duk_ispec *src, duk_ispec *dst)
DUK_LOCAL const duk_uint8_t duk__decode_uri_component_reserved_table[16]
DUK_INTERNAL_DECL duk_uint32_t duk_js_touint32(duk_hthread *thr, duk_tval *tv)
DUK_LOCAL void duk__appendbuffer_ascii(duk_lexer_ctx *lex_ctx, duk_codepoint_t x)
#define DUK_PAUSE_FLAG_ONE_OPCODE_ACTIVE
DUK_INTERNAL_DECL void * duk_heap_mem_alloc_checked(duk_hthread *thr, duk_size_t size)
#define duk_js_samevalue(tv_x, tv_y)
#define DUK_DBG_CMD_STATUS
DUK_EXTERNAL const char * duk_push_lstring(duk_hthread *thr, const char *str, duk_size_t len)
#define DUK__GETCONST_MAX_CONSTS_CHECK
DUK_LOCAL_DECL duk_uint8_t duk__json_dec_get(duk_json_dec_ctx *js_ctx)
#define DUK_STRIDX_INT_FINALIZER
DUK_INTERNAL_DECL void duk_hbufobj_push_uint8array_from_plain(duk_hthread *thr, duk_hbuffer *h_buf)
DUK_LOCAL duk_uint8_t * duk__json_enc_buffer_data_hex(const duk_uint8_t *src, duk_size_t src_len, duk_uint8_t *dst)
#define DUK_HOBJECT_CLASS_ARRAY
#define DUK_STRIDX_CONSTRUCTOR
#define DUK_OP_GETPROPC_RR
#define DUK_ERROR_INTERNAL(thr)
#define DUK__EMIT_STRIDX(js_ctx, i)
DUK_LOCAL void duk__cbor_decode_and_join_strbuf(duk_cbor_decode_context *dec_ctx, duk_uint8_t expected_base)
DUK_INTERNAL_DECL duk_ret_t duk_bi_number_prototype_value_of(duk_context *ctx)
DUK_EXTERNAL void duk_load_function(duk_hthread *thr)
DUK_EXTERNAL duk_idx_t duk_push_bare_array(duk_hthread *thr)
DUK_LOCAL duk_small_int_t duk__array_sort_compare(duk_hthread *thr, duk_int_t idx1, duk_int_t idx2)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_substring(duk_context *ctx)
#define DUK_HOBJECT_CLASS_DATE
DUK_INTERNAL_DECL duk_bool_t duk_bi_date_timeval_in_leeway_range(duk_double_t x)
#define DUK__LENGTH_PROP_BITS
DUK_EXTERNAL duk_bool_t duk_get_boolean_default(duk_hthread *thr, duk_idx_t idx, duk_bool_t def_value)
DUK_LOCAL_DECL duk_compiler_instr * duk__get_instr_ptr(duk_compiler_ctx *comp_ctx, duk_int_t pc)
DUK_INTERNAL DUK_COLD void duk_err_type_invalid_state(duk_hthread *thr, const char *filename, duk_int_t linenumber)
#define DUK_STR_BASE64_ENCODE_FAILED
DUK_LOCAL_DECL void duk__emit_2(duk_json_enc_ctx *js_ctx, duk_uint_fast8_t ch1, duk_uint_fast8_t ch2)
#define DUK_DBLUNION_IS_ANYZERO(u)
#define DUK_TVAL_INCREF(thr, tv)
DUK_LOCAL void duk__objlit_flush_keys(duk_compiler_ctx *comp_ctx, duk__objlit_state *st)
#define DUK_TVAL_GET_FASTINT_U32(tv)
DUK_LOCAL void duk__inspect_multiple_uint(duk_hthread *thr, const char *fmt, duk_int_t *vals)
#define DUK_HCOMPFUNC_GET_DATA(heap, h)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF duk_double_t duk__compute_mod(duk_double_t d1, duk_double_t d2)
DUK_EXTERNAL void duk_xcopymove_raw(duk_hthread *to_thr, duk_hthread *from_thr, duk_idx_t count, duk_bool_t is_copy)
#define DUK_DBG_CMD_GETOBJPROPDESCRANGE
#define DUK_CAT_HAS_FINALLY_ENABLED(c)
#define duk_require_hobject_promote_lfunc(thr, idx)
DUK_LOCAL duk_bool_t duk__declvar_helper(duk_hthread *thr, duk_hobject *env, duk_hstring *name, duk_tval *val, duk_small_uint_t prop_flags, duk_bool_t is_func_decl)
#define DUK__IVAL_FLAG_REQUIRE_TEMP
#define DUK__CALL_HANDLING_REQUIRE_STACK
#define DUK_HOBJECT_E_GET_VALUE_SETTER(heap, h, i)
DUK_INTERNAL_DECL duk_bool_t duk_get_prop_stridx(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t stridx)
#define DUK_HOBJECT_FLAG_NATFUNC
DUK_LOCAL duk_small_int_t duk__json_dec_string_escape(duk_json_dec_ctx *js_ctx, duk_uint8_t **ext_p)
DUK_INTERNAL const duk_uint8_t duk_lc_digits[36]
#define DUK_REALLOC_INDIRECT(heap, cb, ud, newsize)
#define DUK_PROPDESC_FLAG_ACCESSOR
#define DUK_HOBJECT_HAS_CONSTRUCTABLE(h)
DUK_INTERNAL_DECL void duk_hthread_create_builtin_objects(duk_hthread *thr)
DUK_LOCAL duk_bool_t duk__getid_activation_regs(duk_hthread *thr, duk_hstring *name, duk_activation *act, duk__id_lookup_result *out)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_define_property(duk_context *ctx)
DUK_LOCAL void duk__set_catcher_regs_norz(duk_hthread *thr, duk_catcher *cat, duk_tval *tv_val_unstable, duk_small_uint_t lj_type)
DUK_LOCAL void duk__free_stringtable(duk_heap *heap)
#define DUK_REOP_INVRANGES
#define DUK__PROP_TYPE_ACCESSOR
#define DUK_BW_RESET_SIZE(thr, bw_ctx)
DUK_INTERNAL_DECL void duk_numconv_parse(duk_hthread *thr, duk_small_int_t radix, duk_small_uint_t flags)
DUK_LOCAL_DECL void duk__advance(duk_compiler_ctx *ctx)
#define DUK_HOBJECT_E_GET_KEY(heap, h, i)
DUK_EXTERNAL duk_bool_t duk_is_undefined(duk_hthread *thr, duk_idx_t idx)
#define DUK_HSTRING_HAS_PINNED_LITERAL(x)
#define DUK__FUNCTION_INIT_REQUIRE_SLOTS
#define DUK_HOBJECT_CLASS_ARGUMENTS
#define DUK_HOBJECT_FLAG_BOUNDFUNC
#define DUK__RZ_SUPPRESS_CHECK()
DUK_LOCAL duk_idx_t duk__call_get_idx_func_unvalidated(duk_hthread *thr, duk_idx_t nargs, duk_idx_t other)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_slice(duk_context *ctx)
#define DUK_STR_CANNOT_DELETE_IDENTIFIER
DUK_INTERNAL_DECL duk_ret_t duk_bi_function_constructor(duk_context *ctx)
DUK_EXTERNAL void duk_push_heap_stash(duk_hthread *thr)
DUK_LOCAL duk_int_t duk__str_search_shared(duk_hthread *thr, duk_hstring *h_this, duk_hstring *h_search, duk_int_t start_cpos, duk_bool_t backwards)
#define DUK__LT_BODY(barg, carg)
DUK_LOCAL void duk__handle_bound_chain_for_call(duk_hthread *thr, duk_idx_t idx_func, duk_bool_t is_constructor_call)
DUK_LOCAL duk_bool_t duk__key_is_plain_buf_ownprop(duk_hthread *thr, duk_hbuffer *buf, duk_hstring *key, duk_uint32_t arr_idx)
#define DUK_PROPDESC_FLAGS_E
#define DUK_TVAL_GET_TAG(tv)
DUK_EXTERNAL void * duk_alloc(duk_hthread *thr, duk_size_t size)
DUK_INTERNAL_DECL duk_double_t duk_raw_readinc_double_be(const duk_uint8_t **p)
#define DUK_HOBJECT_FLAG_EXOTIC_ARGUMENTS
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_constructor(duk_context *ctx)
#define DUK_STR_INVALID_INPUT
DUK_INTERNAL_DECL duk_int_t duk_handle_call_unprotected(duk_hthread *thr, duk_idx_t idx_func, duk_small_uint_t call_flags)
DUK_INTERNAL_DECL duk_ret_t duk_bi_error_prototype_stack_getter(duk_context *ctx)
#define DUK_PROPDESC_FLAGS_WE
#define DUK_HBUFOBJ_ELEM_INT8
DUK_LOCAL void duk__concat_and_join_helper(duk_hthread *thr, duk_idx_t count_in, duk_bool_t is_join)
#define DUK_TOK_ALSHIFT_EQ
#define DUK_HOBJECT_IS_NONBOUND_FUNCTION(h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_slice(duk_context *ctx)
DUK_LOCAL const duk_uint8_t duk__json_quotestr_lookup[256]
DUK_LOCAL_DECL void duk__json_dec_plain_string(duk_json_dec_ctx *js_ctx)
#define DUK__EXPR_RBP_MASK
DUK_INTERNAL_DECL duk_hstring * duk_get_hstring_notsymbol(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_uint32_t duk__insert_jump_offset(duk_re_compiler_ctx *re_ctx, duk_uint32_t offset, duk_int32_t skip)
DUK_EXTERNAL void duk_put_function_list(duk_hthread *thr, duk_idx_t obj_idx, const duk_function_list_entry *funcs)
DUK_EXTERNAL void * duk_get_pointer_default(duk_hthread *thr, duk_idx_t idx, void *def_value)
#define DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ
#define DUK__ASSERT_LEFT(n)
DUK_LOCAL void duk__mark_hstring(duk_heap *heap, duk_hstring *h)
#define DUK_HBUFOBJ_INCREF(thr, h)
#define DUK_DBG_CMD_RESUME
DUK_LOCAL double duk__ceil(double x)
#define DUK_HOBJECT_SET_PROTOTYPE_UPDREF(thr, h, p)
DUK_INTERNAL_DECL duk_hstring * duk_known_hstring(duk_hthread *thr, duk_idx_t idx)
#define DUK_STRIDX_REG_EXP
#define DUK_STRIDX_UC_STRING
#define DUK_STR_EMPTY_EXPR_NOT_ALLOWED
DUK_INTERNAL_DECL duk_ret_t duk_bi_textdecoder_constructor(duk_context *ctx)
DUK_EXTERNAL void duk_destroy_heap(duk_hthread *thr)
DUK_LOCAL duk_codepoint_t duk__hexval_validate(duk_codepoint_t x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_error_prototype_filename_setter(duk_context *ctx)
#define DUK_BIDX_STRING_PROTOTYPE
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_constructor_parse(duk_context *ctx)
DUK_LOCAL void duk__cbor_encode_string_top(duk_cbor_encode_context *enc_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_caseconv_shared(duk_context *ctx)
#define DUK_BW_WRITE_RAW_U8_6(thr, bw_ctx, val1, val2, val3, val4, val5, val6)
#define DUK_DBG_CMD_TRIGGERSTATUS
#define DUK_HBUFOBJ_ELEM_UINT32
#define DUK_HOBJECT_CLASS_UINT8CLAMPEDARRAY
#define DUK_TVAL_IS_POINTER(tv)
#define DUK_STRIDX_LC_UNDEFINED
#define DUK_HOBJECT_GET_ASIZE(h)
#define DUK_HOBJECT_CMASK_ALL
DUK_LOCAL void duk__handle_executor_error(duk_heap *heap, duk_activation *entry_act, duk_int_t entry_call_recursion_depth, duk_jmpbuf *entry_jmpbuf_ptr, volatile duk_bool_t *out_delayed_catch_setup)
#define DUK__ADVANCECHARS(lex_ctx, count)
#define DUK_DBG_CMD_THROW
DUK_EXTERNAL duk_bool_t duk_put_prop_index(duk_hthread *thr, duk_idx_t obj_idx, duk_uarridx_t arr_idx)
#define duk_memzero(dst, len)
DUK_LOCAL void duk__append_u32(duk_re_compiler_ctx *re_ctx, duk_uint32_t x)
DUK_INTERNAL_DECL void duk_hobject_compact_props(duk_hthread *thr, duk_hobject *obj)
DUK_INTERNAL_DECL duk_ret_t duk_bi_performance_now(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_is_finite(duk_context *ctx)
DUK_LOCAL void duk__finalize_refcounts(duk_heap *heap)
#define DUK__ASSERT_SPACE()
#define DUK_TVAL_IS_UNUSED(tv)
#define DUK_ACT_FLAG_STRICT
DUK_EXTERNAL duk_int_t duk_pcall_method(duk_hthread *thr, duk_idx_t nargs)
#define DUK_HSTRING_GET_HASH(x)
DUK_EXTERNAL void duk_to_null(duk_hthread *thr, duk_idx_t idx)
#define DUK_FREE(heap, ptr)
DUK_LOCAL duk_heaphdr * duk__known_heaphdr(duk_hthread *thr, duk_idx_t idx)
#define DUK_HEAPHDR_HAS_TEMPROOT(h)
DUK_EXTERNAL duk_bool_t duk_get_prop_heapptr(duk_hthread *thr, duk_idx_t obj_idx, void *ptr)
DUK_LOCAL duk_double_t duk__tonumber_string_raw(duk_hthread *thr)
#define DUK_LJ_TYPE_RETURN
DUK_EXTERNAL void duk_seal(duk_hthread *thr, duk_idx_t obj_idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_duktape_object_gc(duk_context *ctx)
#define DUK_STRIDX_WELLKNOWN_SYMBOL_IS_CONCAT_SPREADABLE
#define DUK_BW_ENSURE_RAW(thr, bw_ctx, sz, ptr)
DUK_INTERNAL_DECL duk_ret_t duk_bi_symbol_key_for(duk_context *ctx)
#define DUK_HOBJECT_E_SET_KEY(heap, h, i, k)
DUK_LOCAL void * duk__get_pointer_raw(duk_hthread *thr, duk_idx_t idx, void *def_value)
DUK_LOCAL_DECL duk_regconst_t duk__ivalue_toregconst_raw(duk_compiler_ctx *comp_ctx, duk_ivalue *x, duk_regconst_t forced_reg, duk_small_uint_t flags)
#define DUK_HOBJECT_FLAG_CREATEARGS
DUK_LOCAL const duk_uint8_t duk__decode_uri_reserved_table[16]
#define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv, d)
DUK_LOCAL void duk__uncaught_error_aware(duk_hthread *thr)
#define DUK_HOBJECT_E_SLOT_CLEAR_ACCESSOR(heap, h, i)
DUK_INTERNAL_DECL duk_uint32_t duk_raw_read_u32_be(const duk_uint8_t *p)
DUK_INTERNAL_DECL void duk_lexer_setpoint(duk_lexer_ctx *lex_ctx, duk_lexer_point *pt)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_indexof_shared(duk_context *ctx)
#define DUK_TVAL_SET_STRING_UPDREF
#define DUK_HOBJECT_GET_CLASS_STRING(heap, h)
#define DUK_HEAPHDR_HTYPE_VALID(h)
DUK_EXTERNAL duk_uint_t duk_require_uint(duk_hthread *thr, duk_idx_t idx)
#define DUK_BIDX_UINT8CLAMPEDARRAY_PROTOTYPE
DUK_LOCAL void duk__push_stridx_or_string(duk_hthread *thr, duk_bitdecoder_ctx *bd)
const duk_uint8_t duk_unicode_ids_noa[1116]
#define DUK_PROPDESC_FLAGS_C
#define DUK_HOBJECT_CLASS_NONE
#define DUK_HTHREAD_STRING_INT_VARENV(thr)
#define DUK_ERROR_URI(thr, msg)
#define DUK_STRIDX_UC_DATE
#define DUK_BIDX_INT32ARRAY_PROTOTYPE
#define DUK__RETURN_SHARED()
#define DUK_HSTRING_FLAG_RESERVED_WORD
#define DUK_BW_GET_BASEPTR(thr, bw_ctx)
#define DUK_COMPARE_FLAG_EVAL_LEFT_FIRST
#define DUK__OUTPUT_TYPE_LINENUMBER
#define DUK__ITER_FOREACH
#define DUK_STR_NOT_OBJECT_COERCIBLE
#define DUK_STRIDX_LC_BOOLEAN
#define DUK_DBLUNION_NORMALIZE_NAN_CHECK(u)
DUK_LOCAL void duk__handle_safe_call_inner(duk_hthread *thr, duk_safe_call_function func, void *udata, duk_hthread *entry_curr_thread, duk_uint_fast8_t entry_thread_state, duk_idx_t idx_retbase, duk_idx_t num_stack_rets)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_repeat(duk_context *ctx)
#define DUK_DBLUNION_HAS_SIGNBIT(u)
#define DUK_ASSERT_DISABLE(x)
#define DUK__UNPACK_RULE(rule, var_nextidx, var_flags)
#define duk_memcpy_unsafe(dst, src, len)
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_random(duk_context *ctx)
DUK_LOCAL DUK_EXEC_NOINLINE_PERF void duk__handle_op_initset_initget(duk_hthread *thr, duk_uint_fast32_t ins)
DUK_LOCAL duk_hbufobj * duk__require_bufobj_value(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL const duk_uint16_t duk_unicode_re_ranges_digit[2]
#define DUK_HOBJECT_FLAG_COMPFUNC
DUK_LOCAL DUK_ALWAYS_INLINE void duk__base64_encode_fast_1(const duk_uint8_t *src, duk_uint8_t *dst)
DUK_EXTERNAL void duk_debugger_pause(duk_hthread *thr)
DUK_EXTERNAL const char * duk_api_global_filename
struct duk_hcompfunc duk_hcompfunc
#define DUK__BITPACK_LOOKUP2
#define DUK_ASSERT_REFCOUNT_NONZERO_TVAL(tv)
DUK_LOCAL duk_bool_t duk__init_heap_thread(duk_heap *heap)
DUK_EXTERNAL void * duk_opt_pointer(duk_hthread *thr, duk_idx_t idx, void *def_value)
DUK_EXTERNAL duk_bool_t duk_equals(duk_hthread *thr, duk_idx_t idx1, duk_idx_t idx2)
#define DUK_STR_NOT_OBJECT
#define DUK_HEAPHDR_PREINC_REFCOUNT(h)
DUK_LOCAL const duk_uint8_t * duk__match_regexp(duk_re_matcher_ctx *re_ctx, const duk_uint8_t *pc, const duk_uint8_t *sp)
#define DUK_HOBJECT_IS_CALLABLE(h)
#define DUK_HOBJECT_SET_NOTAIL(h)
DUK_INTERNAL_DECL void duk_hobject_prepare_property_descriptor(duk_hthread *thr, duk_idx_t idx_in, duk_uint_t *out_defprop_flags, duk_idx_t *out_idx_value, duk_hobject **out_getter, duk_hobject **out_setter)
DUK_EXTERNAL void duk_push_false(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_hthread_terminate(duk_hthread *thr)
DUK_LOCAL duk_ret_t duk__safe_to_stacktrace_raw(duk_hthread *thr, void *udata)
DUK_LOCAL duk_ret_t duk__pnew_helper(duk_hthread *thr, void *udata)
#define DUK_HBUFOBJ_ELEM_FLOAT64
#define DUK_STRIDX_ERR_THROW
DUK_INTERNAL_DECL void duk_heap_run_finalizer(duk_heap *heap, duk_hobject *obj)
DUK_EXTERNAL duk_double_t duk_require_number(duk_hthread *thr, duk_idx_t idx)
#define DUK__EMIT_FLAG_BC_REGCONST
#define DUK_STR_REG_LIMIT
DUK_INTERNAL_DECL duk_ret_t duk_bi_thread_current(duk_context *ctx)
DUK_EXTERNAL void duk_def_prop(duk_hthread *thr, duk_idx_t obj_idx, duk_uint_t flags)
DUK_LOCAL duk_ret_t duk__do_compile(duk_hthread *thr, void *udata)
#define DUK_BIDX_FLOAT32ARRAY_PROTOTYPE
DUK_INTERNAL_DECL duk_ret_t duk_bi_symbol_tostring_shared(duk_context *ctx)
#define DUK_HOBJECT_CLASS_AS_FLAGS(v)
DUK_LOCAL void duk__call_thread_state_update(duk_hthread *thr)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_is_identifier_start(duk_codepoint_t cp)
DUK_INTERNAL_DECL duk_ret_t duk_bi_thread_resume(duk_context *ctx)
DUK_LOCAL const duk__exp_limits duk__str2num_exp_limits[]
duk_double_t(* duk__toint_coercer)(duk_hthread *thr, duk_tval *tv)
DUK_EXTERNAL void duk_decode_string(duk_hthread *thr, duk_idx_t idx, duk_decode_char_function callback, void *udata)
#define DUK_HOBJECT_SET_ESIZE(h, v)
#define DUK_HOBJECT_CLASS_NUMBER
DUK_LOCAL void duk__strtable_grow_inplace(duk_heap *heap)
DUK_EXTERNAL void duk_error_va_raw(duk_hthread *thr, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt, va_list ap)
#define DUK_HSTRING_SET_EVAL_OR_ARGUMENTS(x)
#define DUK__JSON_ENCSTR_CHUNKSIZE
#define DUK_DBG_CMD_ADDBREAK
static const duk_uint32_t duk__bufobj_flags_lookup[]
DUK_INTERNAL_DECL void duk_tval_set_number_chkfast_slow(duk_tval *tv, duk_double_t x)
#define duk_xdef_prop_stridx_short(thr, obj_idx, stridx, desc_flags)
DUK_EXTERNAL void * duk_get_buffer_default(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size, void *def_ptr, duk_size_t def_len)
DUK_LOCAL duk_uint32_t duk__encode_i32(duk_int32_t x)
#define DUK_HOBJECT_FLAG_SPECIAL_CALL
#define DUK_S2N_FLAG_ALLOW_NAKED_FRAC
DUK_INTERNAL_DECL void duk_free_hobject(duk_heap *heap, duk_hobject *h)
DUK_INTERNAL DUK_COLD void duk_err_type_invalid_args(duk_hthread *thr, const char *filename, duk_int_t linenumber)
#define DUK_HSTRING_HAS_EXTDATA(x)
#define DUK_HEAP_HAS_INTERRUPT_RUNNING(heap)
#define DUK_STR_INVALID_TOKEN
DUK_LOCAL duk_bool_t duk__compare_number(duk_bool_t retval, duk_double_t d1, duk_double_t d2)
#define DUK_LFUNC_MAGIC_MIN
#define DUK_HTHREAD_STATE_INACTIVE
#define DUK__PROP_TYPE_BUILTIN
DUK_EXTERNAL duk_errcode_t duk_get_error_code(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_INVALID_ARGS
#define DUK_ACT_FLAG_DIRECT_EVAL
DUK_LOCAL_DECL void duk__add_label(duk_compiler_ctx *comp_ctx, duk_hstring *h_label, duk_int_t pc_label, duk_int_t label_id)
DUK_INTERNAL_DECL duk_hstring * duk_get_hstring(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL void duk_error_raw(duk_hthread *thr, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt,...)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_prototype_property_is_enumerable(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_search(duk_context *ctx)
duk_int32_t duk_regconst_t
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_encode_uri_component(duk_context *ctx)
DUK_EXTERNAL const char * duk_hex_encode(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_int32_t duk__bc_get_i32(duk_re_matcher_ctx *re_ctx, const duk_uint8_t **pc)
#define DUK_HBUFFER_FLAG_EXTERNAL
DUK_EXTERNAL duk_size_t duk_get_length(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_hstring * duk_heap_strtable_intern(duk_heap *heap, const duk_uint8_t *str, duk_uint32_t blen)
DUK_INTERNAL_DECL duk_int_t duk_to_int_check_range(duk_hthread *thr, duk_idx_t idx, duk_int_t minval, duk_int_t maxval)
DUK_INTERNAL const duk_uint16_t duk_unicode_re_ranges_not_wordchar[10]
DUK_LOCAL_DECL void duk__ispec_toforcedreg(duk_compiler_ctx *comp_ctx, duk_ispec *x, duk_regconst_t forced_reg)
DUK_LOCAL_DECL duk_bool_t duk__check_arguments_map_for_get(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_propdesc *temp_desc)
DUK_INTERNAL_DECL void * duk_push_fixed_buffer_nozero(duk_hthread *thr, duk_size_t len)
#define DUK_BIDX_GLOBAL_ENV
DUK_INTERNAL_DECL void duk_js_compile(duk_hthread *thr, const duk_uint8_t *src_buffer, duk_size_t src_length, duk_small_uint_t flags)
#define DUK_HOBJECT_IS_ENV(h)
#define DUK_HEAPHDR_HAS_REACHABLE(h)
#define DUK_STRIDX_INT32_ARRAY
#define DUK_DBG_CMD_PAUSE
#define DUK_HBUFFER_DYNAMIC_SET_DATA_PTR(heap, x, v)
#define DUK_OP_DELPROP_RR
DUK_INTERNAL_DECL void duk_js_push_closure(duk_hthread *thr, duk_hcompfunc *fun_temp, duk_hobject *outer_var_env, duk_hobject *outer_lex_env, duk_bool_t add_auto_proto)
DUK_INTERNAL_DECL void duk_dblunion_host_to_big(duk_double_union *u)
DUK_INTERNAL_DECL duk_uint_fast32_t duk_heap_strcache_offset_char2byte(duk_hthread *thr, duk_hstring *h, duk_uint_fast32_t char_offset)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_prototype_toprimitive(duk_context *ctx)
#define DUK_HOBJECT_SET_STRICT(h)
DUK_EXTERNAL void duk_cbor_decode(duk_hthread *thr, duk_idx_t idx, duk_uint_t decode_flags)
#define DUK_STATS_INC(heap, fieldname)
#define DUK_CAT_FLAG_LEXENV_ACTIVE
#define DUK__FUNC_FLAG_METDEF
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_keys_shared(duk_context *ctx)
#define DUK_HEAP_MARK_AND_SWEEP_TRIGGER_ADD
#define DUK_STR_NOT_THREAD
#define DUK_N2S_FLAG_FORCE_EXP
#define DUK_TVAL_SET_BOOLEAN_UPDREF
struct duk_hbuffer_external duk_hbuffer_external
#define DUK__DIGITCHAR(x)
DUK_EXTERNAL void duk_dup_top(duk_hthread *thr)
DUK_LOCAL_DECL void duk__json_enc_buffer_jx_jc(duk_json_enc_ctx *js_ctx, duk_hbuffer *h)
#define DUK__FUNC_FLAG_GETSET
static duk_uint8_t * duk__dump_func(duk_hthread *thr, duk_hcompfunc *func, duk_bufwriter_ctx *bw_ctx, duk_uint8_t *p)
#define DUK_LFUNC_NARGS_VARARGS
#define DUK_HPROXY_ASSERT_VALID(h)
DUK_INTERNAL_DECL duk_double_t duk_bi_date_get_now_time(void)
DUK_INTERNAL_DECL void duk_bw_write_ensure_slice(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t src_off, duk_size_t len)
#define DUK_HNATFUNC_ASSERT_VALID(h)
#define DUK_HEAPHDR_GET_REFCOUNT(h)
DUK_INTERNAL_DECL duk_hobject * duk_error_prototype_from_code(duk_hthread *thr, duk_errcode_t err_code)
DUK_LOCAL void duk__initbuffer(duk_lexer_ctx *lex_ctx)
#define DUK_ASC_SEMICOLON
#define DUK__ALLOCTEMP(comp_ctx)
#define DUK_LEXER_INITCTX(ctx)
#define DUK__BYTECODE_INITIAL_ALLOC
#define DUK_HOBJECT_IS_THREAD(h)
#define DUK_TVAL_GET_STRING(tv)
DUK_INTERNAL_DECL duk_int32_t duk_js_toint32(duk_hthread *thr, duk_tval *tv)
DUK_EXTERNAL void * duk_realloc_raw(duk_hthread *thr, void *ptr, duk_size_t size)
DUK_EXTERNAL const char * duk_to_lstring(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_len)
#define DUK_HOBJECT_DECREF_NORZ_ALLOWNULL(thr, h)
DUK_LOCAL_DECL void duk__parse_stmts(duk_compiler_ctx *comp_ctx, duk_bool_t allow_source_elem, duk_bool_t expect_eof, duk_bool_t regexp_after)
DUK_EXTERNAL void duk_require_stack(duk_hthread *thr, duk_idx_t extra)
DUK_EXTERNAL duk_uint32_t duk_to_uint32(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_getprop(duk_hthread *thr, duk_tval *tv_obj, duk_tval *tv_key)
#define DUK_S2N_FLAG_ALLOW_AUTO_OCT_INT
DUK_EXTERNAL duk_hthread * duk_require_context(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_bool_t duk__js_instanceof_helper(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y, duk_bool_t skip_sym_check)
#define DUK_HEAPHDR_ASSERT_VALID(h)
#define DUK_DBG_CMD_GETVAR
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_unescape(duk_context *ctx)
#define DUK_RE_COMPILE_TOKEN_LIMIT
DUK_INTERNAL_DECL duk_hbuffer * duk_require_hbuffer(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL void duk__handle_catch_part2(duk_hthread *thr)
#define DUK_ALLOC_CHECKED(thr, size)
DUK_LOCAL DUK__RZ_INLINE void duk__hbuffer_refzero_helper(duk_hthread *thr, duk_hbuffer *h)
static const duk_uint8_t duk__buffer_nbytes_from_fldtype[6]
#define DUK_DCERROR_RANGE_INVALID_ARGS(thr)
DUK_INTERNAL_DECL duk_tval * duk_get_tval_or_unused(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_uint_fast32_t duk_hobject_pc2line_query(duk_hthread *thr, duk_idx_t idx_func, duk_uint_fast32_t pc)
#define DUK_STR_INTERNAL_ERROR
DUK_LOCAL void duk__emit_load_int32_raw(duk_compiler_ctx *comp_ctx, duk_regconst_t reg, duk_int32_t val, duk_small_uint_t op_flags)
#define DUK_STRIDX_UC_NULL
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_byte_length(duk_context *ctx)
#define DUK_RETOK_ATOM_START_CHARCLASS_INVERTED
duk_double_t duk__sort_key_t
#define DUK_HOBJECT_CMASK_NUMBER
#define DUK_TVAL_SET_NUMBER_CHKFAST_UPDREF
DUK_LOCAL void duk__handle_createargs_for_call(duk_hthread *thr, duk_hobject *func, duk_hobject *env, duk_idx_t idx_args)
DUK_EXTERNAL void duk_json_decode(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL void duk_push_int(duk_hthread *thr, duk_int_t val)
#define DUK_LEXER_SETPOINT(ctx, pt)
DUK_EXTERNAL void duk_get_prototype(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_UNEXPECTED_END_OF_PATTERN
DUK_EXTERNAL void * duk_alloc_raw(duk_hthread *thr, duk_size_t size)
DUK_INTERNAL_DECL void duk_heaphdr_refzero_norz(duk_hthread *thr, duk_heaphdr *h)
DUK_LOCAL DUK_COLD DUK_NOINLINE void duk__strtable_resize_check(duk_heap *heap)
DUK_LOCAL_DECL void duk__json_dec_string(duk_json_dec_ctx *js_ctx)
DUK_LOCAL duk_bool_t duk__put_prop_shared(duk_hthread *thr, duk_idx_t obj_idx, duk_idx_t idx_key)
#define DUK_TOK_SEMICOLON
#define DUK_LJ_TYPE_UNKNOWN
DUK_INTERNAL_DECL duk_hbufobj * duk_push_bufobj_raw(duk_hthread *thr, duk_uint_t hobject_flags_and_class, duk_small_int_t prototype_bidx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_number_prototype_to_precision(duk_context *ctx)
#define DUK_HOBJECT_HAS_EXOTIC_ARGUMENTS(h)
DUK_LOCAL_DECL duk_int_t duk__parse_arguments(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
DUK_EXTERNAL void * duk_opt_buffer(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size, void *def_ptr, duk_size_t def_size)
DUK_LOCAL void duk__push_stridx(duk_hthread *thr, duk_bitdecoder_ctx *bd)
DUK_INTERNAL_DECL void * duk_heap_mem_alloc_zeroed(duk_heap *heap, duk_size_t size)
#define DUK_HOBJECT_P_SET_REALLOC_PTRS(p_base, set_e_k, set_e_pv, set_e_f, set_a, set_h, n_ent, n_arr, n_hash)
#define DUK_HEAPHDR_SET_TYPE(h, val)
DUK_INTERNAL_DECL void duk_remove_n(duk_hthread *thr, duk_idx_t idx, duk_idx_t count)
DUK_LOCAL duk_ret_t duk__safe_to_string_raw(duk_hthread *thr, void *udata)
DUK_LOCAL void duk__bi_copy(duk__bigint *x, duk__bigint *y)
DUK_EXTERNAL duk_bool_t duk_opt_boolean(duk_hthread *thr, duk_idx_t idx, duk_bool_t def_value)
DUK_INTERNAL_DECL duk_ret_t duk_bi_textencoder_prototype_encode(duk_context *ctx)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_delprop_raw(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_small_uint_t flags)
DUK_LOCAL void duk__get_this_regexp(duk_hthread *thr)
DUK_LOCAL duk_ret_t duk__get_part_helper(duk_hthread *thr, duk_small_uint_t flags_and_idx)
#define DUK_HOBJECT_FLAG_BUFOBJ
DUK_LOCAL DUK_EXEC_NOINLINE_PERF duk_small_uint_t duk__handle_op_nextenum(duk_hthread *thr, duk_uint_fast32_t ins)
#define DUK_HEAP_INSERT_INTO_FINALIZE_LIST(heap, hdr)
#define DUK__HEAPPTR_ENC16(heap, ptr)
#define DUK_STR_NOT_EXTENSIBLE
#define DUK_DBLUNION_IS_NEGINF(u)
DUK_LOCAL void duk__sort_enum_keys_es6(duk_hthread *thr, duk_hobject *h_obj, duk_int_fast32_t idx_start, duk_int_fast32_t idx_end)
DUK_INTERNAL_DECL duk_ret_t duk_bi_number_prototype_to_string(duk_context *ctx)
DUK_EXTERNAL void duk_get_memory_functions(duk_hthread *thr, duk_memory_functions *out_funcs)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_constructor_from_char_code(duk_context *ctx)
#define DUK_STR_EXPECTED_IDENTIFIER
DUK_LOCAL duk_hobject * duk__get_hobject_promote_mask_raw(duk_hthread *thr, duk_idx_t idx, duk_uint_t type_mask)
#define DUK_HOBJECT_HAS_ARRAY_PART(h)
DUK_EXTERNAL duk_bool_t duk_del_prop_lstring(duk_hthread *thr, duk_idx_t obj_idx, const char *key, duk_size_t key_len)
#define DUK_HOBJECT_CLASS_SYMBOL
#define DUK_HSTRING_DECREF(thr, h)
#define DUK_HEAPHDR_FLAG_FINALIZED
#define DUK_HOBJECT_IS_NATFUNC(h)
DUK_EXTERNAL duk_bool_t duk_check_type(duk_hthread *thr, duk_idx_t idx, duk_int_t type)
DUK_EXTERNAL void * duk_to_buffer_raw(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size, duk_uint_t mode)
#define DUK_DBLUNION_DOUBLE_NTOH(u)
#define DUK_PAUSE_FLAG_FUNC_EXIT
#define DUK_BIDX_ARRAY_PROTOTYPE
#define DUK_HARRAY_ASSERT_VALID(h)
DUK_INTERNAL_DECL duk_bool_t duk_double_is_nan(duk_double_t x)
#define DUK_HSTRING_INCREF(thr, h)
#define DUK_HOBJECT_FLAG_EXOTIC_STRINGOBJ
DUK_LOCAL duk_bool_t duk__abandon_array_density_check(duk_uint32_t a_used, duk_uint32_t a_size)
DUK_LOCAL const duk_uint8_t duk__parse_iso8601_seps[]
#define DUK_TVAL_SET_TVAL(tv, x)
#define DUK_HOBJECT_IS_BOUNDFUNC(h)
#define DUK_HEAPHDR_FLAG_REACHABLE
#define DUK_BC_TRYCATCH_FLAG_HAVE_CATCH
#define DUK_OP_PREDECP_CC
DUK_INTERNAL_DECL duk_tval * duk_hobject_find_entry_tval_ptr_stridx(duk_heap *heap, duk_hobject *obj, duk_small_uint_t stridx)
const duk_uint8_t duk_unicode_idp_m_ids_noa[576]
#define DUK_TVAL_IS_BOOLEAN_TRUE(tv)
DUK_EXTERNAL void duk_pop(duk_hthread *thr)
#define DUK_STR_COMPILER_RECURSION_LIMIT
DUK_LOCAL void duk__peephole_optimize_bytecode(duk_compiler_ctx *comp_ctx)
#define DUK_HTHREAD_STATE_RESUMED
DUK_LOCAL_DECL void duk__json_dec_eat_white(duk_json_dec_ctx *js_ctx)
#define DUK_REOP_SQGREEDY
DUK_INTERNAL DUK_COLD void duk_err_error(duk_hthread *thr, const char *filename, duk_int_t linenumber, const char *message)
#define DUK_TVAL_SET_TVAL_UPDREF
#define DUK_RAW_READINC_DOUBLE_BE(ptr)
#define DUK_DCERROR_TYPE_INVALID_ARGS(thr)
#define DUK_BD_BITPACKED_STRING_MAXLEN
#define DUK_PAUSE_FLAG_ONE_OPCODE
DUK_INTERNAL_DECL duk_double_t duk_to_number_tval(duk_hthread *thr, duk_tval *tv)
DUK_LOCAL duk_ret_t duk__error_setter_helper(duk_hthread *thr, duk_small_uint_t stridx_key)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_setprototype_shared(duk_context *ctx)
DUK_LOCAL void duk__add_enum_key(duk_hthread *thr, duk_hstring *k)
DUK_LOCAL void duk__to_regexp_helper(duk_hthread *thr, duk_idx_t idx, duk_bool_t force_new)
DUK_LOCAL_DECL void duk__json_enc_objarr_exit(duk_json_enc_ctx *js_ctx, duk_idx_t *entry_top)
DUK_LOCAL DUK_EXEC_NOINLINE_PERF DUK_COLD duk_small_uint_t duk__executor_interrupt(duk_hthread *thr)
#define DUK_HCOMPFUNC_ASSERT_VALID(h)
DUK_LOCAL void duk__call_env_setup(duk_hthread *thr, duk_hobject *func, duk_activation *act, duk_idx_t idx_args)
#define DUK_STRIDX_INVALID_DATE
#define DUK_PUSH_SPRINTF_INITIAL_SIZE
DUK_LOCAL_DECL duk_uint8_t duk__json_dec_peek(duk_json_dec_ctx *js_ctx)
DUK_INTERNAL_DECL double duk_js_arith_pow(double x, double y)
#define DUK_HTHREAD_STRING_LC_ARGUMENTS(thr)
#define DUK__PACK_RULE(partmask, sepmask, nextpart, flags)
DUK_LOCAL void duk__advance_bytes(duk_lexer_ctx *lex_ctx, duk_small_uint_t count_bytes)
#define DUK_STR_NOT_FUNCTION
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_push(duk_context *ctx)
#define DUK_STR_FMT_INVALID_JSON
DUK_LOCAL int duk__transform_helper(duk_hthread *thr, duk__transform_callback callback, const void *udata)
DUK_INTERNAL_DECL duk_ret_t duk_bi_typedarray_set(duk_context *ctx)
#define DUK_DBG_CMD_APPNOTIFY
void(* duk_re_range_callback)(void *user, duk_codepoint_t r1, duk_codepoint_t r2, duk_bool_t direct)
#define DUK_CAT_HAS_CATCH_BINDING_ENABLED(c)
#define DUK_ASSERT_SET_GARBAGE(ptr, size)
#define DUK_HEAPHDR_IS_BUFFER(h)
DUK_LOCAL double duk__fmin_fixed(double x, double y)
DUK_INTERNAL_DECL duk_hnatfunc * duk_hnatfunc_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
DUK_LOCAL_DECL void duk__expr_toforcedreg(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t rbp_flags, duk_regconst_t forced_reg)
#define DUK_HTHREAD_INCREF(thr, h)
#define DUK_RE_FLAG_GLOBAL
#define DUK__ISREG_NOTTEMP(comp_ctx, x)
DUK_INTERNAL_DECL duk_hbuffer * duk_known_hbuffer(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL_DECL void duk__abandon_array_part(duk_hthread *thr, duk_hobject *obj)
DUK_LOCAL void duk__cbor_decode_objarr_entry(duk_cbor_decode_context *dec_ctx)
DUK_INTERNAL_DECL void duk_hobject_define_property_internal_arridx(duk_hthread *thr, duk_hobject *obj, duk_uarridx_t arr_idx, duk_small_uint_t flags)
#define DUK_S2N_FLAG_ALLOW_AUTO_HEX_INT
#define DUK_RETOK_ATOM_DIGIT
DUK_LOCAL duk_bool_t duk__cbor_decode_map(duk_cbor_decode_context *dec_ctx, duk_uint8_t ib, duk_uint8_t ai)
#define DUK_ACT_FLAG_CONSTRUCT
DUK_LOCAL_DECL void duk__ivalue_var_fromstack(duk_compiler_ctx *comp_ctx, duk_ivalue *x)
DUK_EXTERNAL void * duk_require_heapptr(duk_hthread *thr, duk_idx_t idx)
#define DUK_TOK_DECREMENT
#define DUK_BIDX_ERROR_PROTOTYPE
#define DUK_COMPILER_PEEPHOLE_MAXITER
#define DUK__IVAL_FLAG_REQUIRE_SHORT
DUK_LOCAL double duk__floor(double x)
#define DUK__LONGJMP_RETHROW
#define DUK_HEAP_SET_DEBUGGER_PAUSED(heap)
DUK_LOCAL duk_hbufobj * duk__get_bufobj_this(duk_hthread *thr)
#define DUK_STRIDX_DELETE_PROPERTY
static const duk_uint8_t duk__buffer_proto_from_elemtype[9]
#define DUK_HOBJECT_CLASS_OBJENV
DUK_LOCAL_DECL void duk__parse_var_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t expr_flags)
DUK_INTERNAL_DECL void duk_lexer_parse_js_input_element(duk_lexer_ctx *lex_ctx, duk_token *out_token, duk_bool_t strict_mode, duk_bool_t regexp_mode)
#define DUK_BW_INSERT_ENSURE_BYTES(thr, bw, dst_off, buf, len)
DUK_INTERNAL_DECL duk_ret_t duk_bi_reflect_apply(duk_context *ctx)
#define DUK_DBG_IB_HEAPPTR
DUK_INTERNAL_DECL duk_ret_t duk_bi_duktape_object_dec(duk_context *ctx)
#define DUK_TVAL_IS_STRING(tv)
DUK_LOCAL duk_tval * duk__obtain_arridx_slot_slowpath(duk_hthread *thr, duk_uint32_t arr_idx, duk_hobject *obj)
#define DUK_STR_NOT_CONSTRUCTABLE
DUK_LOCAL_DECL duk_bool_t duk__lookup_lhs(duk_compiler_ctx *ctx, duk_regconst_t *out_reg_varbind, duk_regconst_t *out_rc_varname)
#define DUK_HBUFOBJ_ELEM_INT32
#define DUK__FLOAT_ROUND_LIMIT
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_reverse(duk_context *ctx)
#define DUK_PROPDESC_FLAG_NO_OVERWRITE
DUK_EXTERNAL void duk_call_method(duk_hthread *thr, duk_idx_t nargs)
#define DUK_HCOMPFUNC_GET_FUNCS_END(heap, h)
#define DUK_LFUNC_FLAGS_PACK(magic, length, nargs)
#define DUK_HOBJECT_DECREF(thr, h)
DUK_INTERNAL_DECL void duk_bw_insert_ensure_bytes(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t dst_off, const duk_uint8_t *buf, duk_size_t len)
#define duk_memset_unsafe(dst, val, len)
DUK_INTERNAL_DECL duk_int_t duk_handle_safe_call(duk_hthread *thr, duk_safe_call_function func, void *udata, duk_idx_t num_stack_args, duk_idx_t num_stack_res)
DUK_INTERNAL_DECL duk_bool_t duk_js_equals_helper(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y, duk_small_uint_t flags)
#define DUK_ALLOC_RAW(heap, size)
DUK_EXTERNAL const char * duk_get_lstring_default(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_len, const char *def_ptr, duk_size_t def_len)
DUK_LOCAL duk_codepoint_t duk__slow_case_conversion(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_codepoint_t cp, duk_bitdecoder_ctx *bd_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_error_prototype_stack_setter(duk_context *ctx)
DUK_LOCAL_DECL void duk__expr_toplain_ignore(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t rbp_flags)
#define DUK_PAUSE_FLAG_UNCAUGHT_ERROR
#define DUK_DCERROR_RANGE_INVALID_LENGTH(thr)
#define DUK_HOBJECT_CLASS_ERROR
DUK_INTERNAL_DECL duk_bool_t duk_bi_date_timeval_in_valid_range(duk_double_t x)
#define DUK_STR_INVALID_FOR
DUK_LOCAL void duk__regexp_generate_ranges(void *userdata, duk_codepoint_t r1, duk_codepoint_t r2, duk_bool_t direct)
#define DUK_LEXER_TEMP_BUF_LIMIT
DUK_INTERNAL_DECL duk_hnatfunc * duk_get_hnatfunc(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_PARSE_ERROR
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_parse_int(duk_context *ctx)
#define DUK_GET_TVAL_POSIDX(thr, idx)
DUK_EXTERNAL void duk_push_context_dump(duk_hthread *thr)
#define DUK_HSTRING_DECREF_NORZ(thr, h)
DUK_LOCAL duk_ret_t duk__to_string_helper(duk_hthread *thr, duk_small_uint_t flags)
DUK_INTERNAL DUK_COLD void duk_err_range_push_beyond(duk_hthread *thr, const char *filename, duk_int_t linenumber)
DUK_INTERNAL_DECL duk_double_t duk_util_tinyrandom_get_double(duk_hthread *thr)
#define DUK_CAT_FLAG_CATCH_ENABLED
#define DUK_HSTRING_SET_SYMBOL(x)
DUK_EXTERNAL duk_int_t duk_to_int(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_INVALID_ARRAY_LITERAL
DUK_LOCAL_DECL duk_small_uint_t duk__expr_lbp(duk_compiler_ctx *comp_ctx)
DUK_INTERNAL_DECL duk_tval * duk_hobject_find_entry_tval_ptr_and_attrs(duk_heap *heap, duk_hobject *obj, duk_hstring *key, duk_uint_t *out_attrs)
DUK_LOCAL duk_codepoint_t duk__utf8_decode_next(duk__decode_context *dec_ctx, duk_uint8_t x)
#define DUK_BIDX_REFERENCE_ERROR_PROTOTYPE
DUK_INTERNAL_DECL void duk_push_hobject_bidx(duk_hthread *thr, duk_small_int_t builtin_idx)
DUK_INTERNAL_DECL duk_hstring * duk_require_hstring_notsymbol(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_parse_float(duk_context *ctx)
#define DUK_DBLUNION_GET_HIGH32(u)
DUK_INTERNAL_DECL int duk_repl_signbit(double x)
#define DUK_STR_TOKEN_LIMIT
#define DUK_BIDX_URI_ERROR_PROTOTYPE
#define DUK_PROPDESC_FLAGS_MASK
DUK_INTERNAL_DECL duk_bool_t duk_js_isarray(duk_tval *tv)
DUK_INTERNAL_DECL duk_hcompfunc * duk_push_hcompfunc(duk_hthread *thr)
DUK_LOCAL void duk__transform_callback_decode_uri(duk__transform_context *tfm_ctx, const void *udata, duk_codepoint_t cp)
#define DUK_HOBJECT_CLASS_FLOAT32ARRAY
DUK_LOCAL_DECL void duk__json_enc_object(duk_json_enc_ctx *js_ctx)
DUK_LOCAL duk_size_t duk__cbor_get_reserve(duk_cbor_encode_context *enc_ctx)
#define DUK_HOBJECT_FLAG_FASTREFS
#define DUK_STR_INVALID_BYTECODE
#define DUK_HOBJECT_E_SLOT_CLEAR_WRITABLE(heap, h, i)
DUK_INTERNAL_DECL duk_hobject * duk_hobject_resolve_proxy_target(duk_hobject *obj)
#define DUK_HOBJECT_GET_HSIZE(h)
#define DUK_S2N_FLAG_ALLOW_AUTO_BIN_INT
#define DUK_RETOK_ATOM_END_GROUP
#define DUK_BIDX_TYPE_ERROR_THROWER
DUK_LOCAL void duk__bi_mul_copy(duk__bigint *x, duk__bigint *y, duk__bigint *t)
#define DUK_HOBJECT_CMASK_ALL_BUFOBJS
#define DUK__TOKEN_LBP_GET_BP(x)
DUK_EXTERNAL void duk_pull(duk_hthread *thr, duk_idx_t from_idx)
DUK_LOCAL void duk__cbor_decode_req_stack(duk_cbor_decode_context *dec_ctx)
DUK_INTERNAL_DECL void duk_raw_writeinc_double_be(duk_uint8_t **p, duk_double_t val)
DUK_LOCAL void duk__bi_mul_small_copy(duk__bigint *x, duk_uint32_t y, duk__bigint *t)
#define DUK_TVAL_ASSERT_VALID(tv)
#define DUK_GET_TVAL_NEGIDX(thr, idx)
DUK_LOCAL_DECL duk_regconst_t duk__ispec_toregconst_raw(duk_compiler_ctx *comp_ctx, duk_ispec *x, duk_regconst_t forced_reg, duk_small_uint_t flags)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_define_properties(duk_context *ctx)
DUK_EXTERNAL void duk_push_global_stash(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_heap_process_finalize_list(duk_heap *heap)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_concat(duk_context *ctx)
#define DUK_UNICODE_CP_ZWJ
DUK_INTERNAL_DECL duk_ret_t duk_bi_arraybuffer_constructor(duk_context *ctx)
#define DUK_OP_PREINCP_CR
#define DUK_HEAP_CLEAR_INTERRUPT_RUNNING(heap)
DUK_EXTERNAL duk_bool_t duk_is_bound_function(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL void duk_pack(duk_hthread *thr, duk_idx_t count)
#define DUK_DCERROR_RANGE_INVALID_COUNT(thr)
DUK_EXTERNAL duk_bool_t duk_is_string(duk_hthread *thr, duk_idx_t idx)
#define DUK_BC_INCDECP_FLAG_POST
DUK_EXTERNAL duk_bool_t duk_is_object(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL void duk__append_slice(duk_re_compiler_ctx *re_ctx, duk_uint32_t data_offset, duk_uint32_t data_length)
DUK_EXTERNAL duk_bool_t duk_is_valid_index(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL void duk_to_undefined(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL void duk_push_hstring_stridx(duk_hthread *thr, duk_small_uint_t stridx)
#define DUK_CAT_GET_LABEL(c)
DUK_LOCAL void duk__appendbuffer(duk_lexer_ctx *lex_ctx, duk_codepoint_t x)
#define DUK_STRIDX_JSON_EXT_FUNCTION2
DUK_INTERNAL_DECL const char * duk_require_lstring_notsymbol(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_len)
#define DUK_TVAL_SET_POINTER(tv, hptr)
DUK_LOCAL const duk_uint_t duk__type_from_tag[]
DUK_LOCAL void duk__mark_roots_heap(duk_heap *heap)
DUK_EXTERNAL duk_bool_t duk_is_boolean(duk_hthread *thr, duk_idx_t idx)
#define DUK_HEAPHDR_HAS_READONLY(h)
DUK_INTERNAL_DECL duk_double_t duk_double_trunc_towards_zero(duk_double_t x)
DUK_LOCAL void duk__call_setup_act_not_tailcall(duk_hthread *thr, duk_small_uint_t call_flags, duk_idx_t idx_func, duk_hobject *func, duk_size_t entry_valstack_bottom_byteoff, duk_size_t entry_valstack_end_byteoff, duk_idx_t *out_nargs, duk_idx_t *out_nregs, duk_size_t *out_vs_min_bytes, duk_activation **out_act)
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_copy(duk_context *ctx)
DUK_INTERNAL_DECL duk_hobject * duk_push_object_helper(duk_hthread *thr, duk_uint_t hobject_flags_and_class, duk_small_int_t prototype_bidx)
static const duk_uint8_t * duk__load_func(duk_hthread *thr, const duk_uint8_t *p, const duk_uint8_t *p_end)
#define DUK_BW_WRITE_RAW_U8(thr, bw_ctx, val)
struct duk_hbufobj duk_hbufobj
#define DUK_ASSERT_VALSTACK_SPACE(thr, n)
#define DUK_TVAL_IS_LIGHTFUNC(tv)
#define DUK_HOBJECT_HAS_CALLABLE(h)
#define DUK_ERROR_UNSUPPORTED(thr)
#define DUK_HSTRING_GET_BYTELEN(x)
#define DUK_RETOK_ATOM_NOT_WHITE
DUK_INTERNAL_DECL duk_bool_t duk_hthread_init_stacks(duk_heap *heap, duk_hthread *thr)
DUK_LOCAL_DECL void duk__json_dec_syntax_error(duk_json_dec_ctx *js_ctx)
#define DUK__IN_BODY(barg, carg)
#define DUK_ASC_SINGLEQUOTE
#define DUK_ENC_OP_A_BC(op, a, bc)
#define DUK_BW_GET_SIZE(thr, bw_ctx)
#define DUK_DBG_IB_LIGHTFUNC
#define DUK__FUNC_FLAG_DECL
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_max(duk_context *ctx)
#define DUK_DBG_CMD_STEPOUT
DUK_INTERNAL_DECL duk_small_uint_t duk_get_class_number(duk_hthread *thr, duk_idx_t idx)
#define DUK_HEAPHDR_GET_FLAGS(h)
#define DUK_HOBJECT_CLASS_UINT8ARRAY
DUK_INTERNAL_DECL duk_bool_t duk_hobject_object_is_sealed_frozen_helper(duk_hthread *thr, duk_hobject *obj, duk_bool_t is_frozen)
DUK_LOCAL_DECL void duk__emit_op_only(duk_compiler_ctx *comp_ctx, duk_small_uint_t op)
#define DUK_BIDX_NUMBER_PROTOTYPE
#define DUK__BITPACK_EIGHTBIT
DUK_LOCAL const duk_uint16_t duk__closure_copy_proplist[]
#define DUK_HCOMPFUNC_DECREF_NORZ(thr, h)
#define DUK__NUM_ISO8601_PARSER_PARTS
#define DUK_STRIDX_LC_NULL
#define DUK_STRIDX_EMPTY_STRING
#define DUK_DBG_CMD_GETLOCALS
DUK_INTERNAL_DECL duk_hcompfunc * duk_hcompfunc_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
#define DUK_BIDX_SYNTAX_ERROR_PROTOTYPE
DUK_EXTERNAL void duk_remove(duk_hthread *thr, duk_idx_t idx)
#define DUK_PAUSE_FLAG_LINE_CHANGE
DUK_LOCAL const duk__one_arg_func duk__one_arg_funcs[]
#define DUK_HTHREAD_STATE_RUNNING
#define DUK_BIDX_UINT32ARRAY_PROTOTYPE
#define DUK_HOBJECT_CLASS_GLOBAL
DUK_LOCAL const duk_uint8_t duk__bitpacked_lookup[16]
DUK_INTERNAL_DECL duk_hobject * duk_get_hobject_promote_mask(duk_hthread *thr, duk_idx_t idx, duk_uint_t type_mask)
DUK_EXTERNAL duk_bool_t duk_put_prop_string(duk_hthread *thr, duk_idx_t obj_idx, const char *key)
#define DUK_STRIDX_INT_VARMAP
#define DUK_STRIDX_UC_OBJECT
DUK_INTERNAL_DECL void duk_raw_writeinc_float_be(duk_uint8_t **p, duk_float_t val)
DUK_LOCAL_DECL void duk__parse_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_bool_t allow_source_elem)
DUK_LOCAL duk_codepoint_t duk__case_transform_helper(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_codepoint_t cp, duk_codepoint_t prev, duk_codepoint_t next, duk_bool_t uppercase)
DUK_LOCAL_DECL void duk__emit_jump(duk_compiler_ctx *comp_ctx, duk_int_t target_pc)
#define DUK_STRIDX_LENGTH
#define DUK__BP_CONDITIONAL
#define DUK__BITPACK_SWITCH
#define DUK_RETOK_ASSERT_WORD_BOUNDARY
DUK_LOCAL duk_codepoint_t duk__lexer_parse_legacy_octal(duk_lexer_ctx *lex_ctx, duk_small_uint_t *out_adv, duk_bool_t reject_annex_b)
DUK_INTERNAL_DECL duk_int_t duk_to_int_clamped(duk_hthread *thr, duk_idx_t idx, duk_int_t minval, duk_int_t maxval)
DUK_EXTERNAL void duk_set_prototype(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL duk_uint_t duk_get_uint_default(duk_hthread *thr, duk_idx_t idx, duk_uint_t def_value)
#define DUK_STRIDX_WELLKNOWN_SYMBOL_TO_STRING_TAG
#define DUK_HEAP_SET_MARKANDSWEEP_RECLIMIT_REACHED(heap)
#define DUK_HOBJECT_HAS_HAVE_FINALIZER(h)
DUK_LOCAL_DECL void duk__patch_trycatch(duk_compiler_ctx *comp_ctx, duk_int_t ldconst_pc, duk_int_t trycatch_pc, duk_regconst_t reg_catch, duk_regconst_t const_varname, duk_small_uint_t flags)
DUK_LOCAL duk_bool_t duk__getvar_helper(duk_hthread *thr, duk_hobject *env, duk_activation *act, duk_hstring *name, duk_bool_t throw_flag)
DUK_INTERNAL_DECL void duk_raw_write_u32_be(duk_uint8_t *p, duk_uint32_t val)
#define DUK_HNATFUNC_NARGS_MAX
DUK_EXTERNAL void * duk_require_buffer(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size)
DUK_INTERNAL_DECL void duk_set_top_and_wipe(duk_hthread *thr, duk_idx_t top, duk_idx_t idx_wipe_start)
#define DUK_JSON_FLAG_EXT_CUSTOM
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_get_xutf8_length(duk_ucodepoint_t cp)
#define DUK_BIDX_REGEXP_CONSTRUCTOR
DUK_EXTERNAL void duk_time_to_components(duk_hthread *thr, duk_double_t timeval, duk_time_components *comp)
DUK_INTERNAL_DECL void duk_heap_free_freelists(duk_heap *heap)
DUK_LOCAL const duk_uint8_t * duk__load_buffer_raw(duk_hthread *thr, const duk_uint8_t *p)
#define DUK_HBUFOBJ_ASSERT_VALID(h)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_object_ownprop_helper(duk_hthread *thr, duk_small_uint_t required_desc_flags)
DUK_EXTERNAL duk_int_t duk_opt_int(duk_hthread *thr, duk_idx_t idx, duk_int_t def_value)
DUK_INTERNAL const duk_int8_t duk_hex_dectab[256]
DUK_EXTERNAL void duk_trim(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_uint8_t duk__cbor_decode_readbyte(duk_cbor_decode_context *dec_ctx)
DUK_INTERNAL_DECL duk_bool_t duk_js_isarray_hobject(duk_hobject *h)
DUK_EXTERNAL void duk_require_function(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_PROTOTYPE_CHAIN_LIMIT
DUK_LOCAL_DECL void duk__patch_jump_here(duk_compiler_ctx *comp_ctx, duk_int_t jump_pc)
DUK_LOCAL const duk_uint8_t * duk__prep_codec_arg(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_len)
#define DUK__VALSTACK_PROXY_LOOKUP
DUK_INTERNAL_DECL duk_bool_t duk_double_is_posinf(duk_double_t x)
#define DUK_DBG_CMD_LISTBREAK
DUK_LOCAL_DECL duk_bool_t duk__json_enc_value(duk_json_enc_ctx *js_ctx, duk_idx_t idx_holder)
#define DUK_HTHREAD_STRING_SET(thr)
DUK_LOCAL double duk__exp(double x)
DUK_LOCAL_DECL void duk__advance_helper(duk_compiler_ctx *comp_ctx, duk_small_int_t expect)
#define DUK_DBG_CMD_STEPOVER
#define DUK_STRIDX_INT_VALUE
#define DUK_BIDX_FLOAT64ARRAY_PROTOTYPE
DUK_EXTERNAL duk_int_t duk_get_int_default(duk_hthread *thr, duk_idx_t idx, duk_int_t def_value)
#define DUK_REALLOC_RAW(heap, ptr, newsize)
#define DUK_ENC_OP_A(op, a)
DUK_EXTERNAL duk_hthread * duk_create_heap(duk_alloc_function alloc_func, duk_realloc_function realloc_func, duk_free_function free_func, void *heap_udata, duk_fatal_function fatal_handler)
DUK_INTERNAL_DECL duk_ret_t duk_bi_symbol_toprimitive(duk_context *ctx)
#define DUK_TVAL_UNUSED_INITIALIZER()
#define DUK_BW_INIT_WITHBUF(thr, bw_ctx, buf)
#define DUK_HSTRING_FLAG_EXTDATA
DUK_INTERNAL_DECL duk_ret_t duk_hobject_get_enumerated_keys(duk_hthread *thr, duk_small_uint_t enum_flags)
DUK_INTERNAL_DECL duk_int_t duk_double_to_int_t(duk_double_t x)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_delprop(duk_hthread *thr, duk_tval *tv_obj, duk_tval *tv_key, duk_bool_t throw_flag)
DUK_EXTERNAL duk_bool_t duk_is_symbol(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL_DECL void duk__ivalue_toplain_ignore(duk_compiler_ctx *comp_ctx, duk_ivalue *x)
#define DUK_GET_HOBJECT_NEGIDX(thr, idx)
#define DUK_TVAL_IS_FASTINT(tv)
DUK_INTERNAL_DECL void duk_bw_remove_raw_slice(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t off, duk_size_t len)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_prototype_get_timezone_offset(duk_context *ctx)
DUK_LOCAL duk_uint32_t duk__insert_i32(duk_re_compiler_ctx *re_ctx, duk_uint32_t offset, duk_int32_t x)
DUK_INTERNAL_DECL void duk_clear_prototype(duk_hthread *thr, duk_idx_t idx)
#define DUK_RETOK_ATOM_NOT_WORD_CHAR
#define DUK_STR_BYTECODE_LIMIT
#define DUK_PROPDESC_FLAG_CONFIGURABLE
#define DUK_DBG_CMD_STEPINTO
DUK_INTERNAL_DECL duk_hthread * duk_hthread_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
#define DUK_HTHREAD_STRING_JX(thr)
DUK_INTERNAL_DECL duk_hstring * duk_require_hstring(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_hstring * duk_heap_strtable_intern_u32(duk_heap *heap, duk_uint32_t val)
DUK_INTERNAL DUK_COLD void duk_err_error_alloc_failed(duk_hthread *thr, const char *filename, duk_int_t linenumber)
#define DUK_HOBJECT_H_GET_INDEX(heap, h, i)
DUK_EXTERNAL duk_bool_t duk_del_prop_string(duk_hthread *thr, duk_idx_t obj_idx, const char *key)
DUK_LOCAL_DECL duk_uint8_t * duk__emit_esc_auto_fast(duk_json_enc_ctx *js_ctx, duk_uint_fast32_t cp, duk_uint8_t *q)
DUK_INTERNAL_DECL void duk_remove_m2(duk_hthread *thr)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_hasprop_raw(duk_hthread *thr, duk_hobject *obj, duk_hstring *key)
DUK_LOCAL_DECL duk_regconst_t duk__ivalue_totempconst(duk_compiler_ctx *comp_ctx, duk_ivalue *x)
DUK_INTERNAL_DECL duk_hdecenv * duk_hdecenv_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
DUK_EXTERNAL duk_bool_t duk_is_strict_call(duk_hthread *thr)
DUK_INTERNAL_DECL duk_hboundfunc * duk_push_hboundfunc(duk_hthread *thr)
DUK_LOCAL_DECL void duk__emit_if_false_skip(duk_compiler_ctx *comp_ctx, duk_regconst_t regconst)
DUK_INTERNAL_DECL duk_ret_t duk_bi_buffer_compare_shared(duk_context *ctx)
DUK_EXTERNAL duk_int_t duk_pcall(duk_hthread *thr, duk_idx_t nargs)
#define duk_memmove_unsafe(dst, src, len)
DUK_LOCAL_DECL void duk__ivalue_regconst(duk_ivalue *x, duk_regconst_t regconst)
#define DUK__CHECK_SPACE()
DUK_LOCAL duk_ret_t duk__error_getter_helper(duk_hthread *thr, duk_small_int_t output_type)
DUK_INTERNAL_DECL void duk_err_setup_ljstate1(duk_hthread *thr, duk_small_uint_t lj_type, duk_tval *tv_val)
#define DUK__INT_NOACTION
#define DUK_HOBJECT_HAS_COMPFUNC(h)
DUK_EXTERNAL duk_bool_t duk_is_constructor_call(duk_hthread *thr)
#define DUK__ERROR_STASH_SHARED(code)
DUK_EXTERNAL duk_int_t duk_pnew(duk_hthread *thr, duk_idx_t nargs)
#define DUK__ALLOW_AUTO_SEMI_ALWAYS
#define DUK_STR_CYCLIC_INPUT
DUK_LOCAL DUK_EXEC_NOINLINE_PERF duk_instr_t * duk__handle_op_endcatch(duk_hthread *thr, duk_uint_fast32_t ins)
DUK_INTERNAL_DECL void duk_heap_strtable_force_resize(duk_heap *heap)
DUK_LOCAL void duk__cbor_encode(duk_hthread *thr, duk_idx_t idx, duk_uint_t encode_flags)
#define DUK_HOBJECT_E_SET_VALUE_SETTER(heap, h, i, v)
#define DUK_IS_POWER_OF_TWO(x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_number_constructor(duk_context *ctx)
DUK_LOCAL void duk__update_default_instance_proto(duk_hthread *thr, duk_idx_t idx_func)
#define DUK_HBUFOBJ_VALID_BYTEOFFSET_EXCL(h, off)
#define DUK_BC_INCDECP_FLAG_DEC
DUK_INTERNAL_DECL void duk_hthread_sync_and_null_currpc(duk_hthread *thr)
#define DUK_HEAPHDR_ASSERT_LINKS(heap, h)
DUK_INTERNAL_DECL duk_bool_t duk_double_is_integer(duk_double_t x)
DUK_EXTERNAL duk_bool_t duk_is_thread(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_substr(duk_context *ctx)
#define DUK__BC_INITIAL_INSTS
DUK_LOCAL const char *const duk__toprim_hint_strings[3]
#define DUK_CAT_FLAG_FINALLY_ENABLED
#define DUK_STR_UNTERMINATED_STMT
DUK_EXTERNAL void * duk_steal_buffer(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size)
#define DUK_HOBJECT_E_SLOT_IS_ACCESSOR(heap, h, i)
DUK_INTERNAL_DECL duk_int_t duk_get_type_tval(duk_tval *tv)
#define DUK_STRIDX_ARRAY_BUFFER
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_onearg_shared(duk_context *ctx)
#define DUK_HOBJECT_CLASS_UINT32ARRAY
DUK_EXTERNAL duk_bool_t duk_is_null(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL void duk_lexer_getpoint(duk_lexer_ctx *lex_ctx, duk_lexer_point *pt)
#define DUK_HSTRING_HAS_EVAL_OR_ARGUMENTS(x)
DUK_LOCAL void duk__dragon4_ctx_to_double(duk__numconv_stringify_ctx *nc_ctx, duk_double_t *x)
#define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv)
#define DUK__MK_LBP_FLAGS(bp, flags)
#define DUK_OP_DECLVAR_CR
DUK_INTERNAL_DECL duk_ret_t duk_bi_reflect_construct(duk_context *ctx)
DUK_LOCAL duk_bool_t duk__js_equals_number(duk_double_t x, duk_double_t y)
DUK_EXTERNAL duk_idx_t duk_push_proxy(duk_hthread *thr, duk_uint_t proxy_flags)
DUK_INTERNAL_DECL void duk_resolve_nonbound_function(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_xdef_prop_stridx_thrower(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t stridx)
#define DUK__TOKEN_LBP_FLAG_NO_REGEXP
#define DUK_CAT_SET_LEXENV_ACTIVE(c)
#define DUK_HEAPHDR_SET_FLAGS(h, val)
#define DUK_RETOK_ATOM_START_CAPTURE_GROUP
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_re_is_wordchar(duk_codepoint_t cp)
DUK_INTERNAL_DECL duk_ret_t duk_bi_textdecoder_prototype_decode(duk_context *ctx)
#define DUK_HOBJECT_CLASS_THREAD
#define DUK_DBG_CMD_DETACHING
DUK_LOCAL double duk__round_fixed(double x)
#define DUK_STRIDX_UC_THREAD
#define DUK_CAT_HAS_LEXENV_ACTIVE(c)
DUK_LOCAL duk_codepoint_t duk__inp_get_prev_cp(duk_re_matcher_ctx *re_ctx, const duk_uint8_t *sp)
DUK_LOCAL void duk__lexer_parse_string_literal(duk_lexer_ctx *lex_ctx, duk_token *out_token, duk_small_int_t quote, duk_bool_t strict_mode)
DUK_EXTERNAL duk_int_t duk_get_magic(duk_hthread *thr, duk_idx_t idx)
#define DUK_TVAL_IS_HEAP_ALLOCATED(tv)
#define DUK_HOBJECT_FLAG_STRICT
DUK_INTERNAL_DECL void duk_hthread_sync_currpc(duk_hthread *thr)
#define DUK_HSTRING_MAX_BYTELEN
DUK_LOCAL_DECL duk_regconst_t duk__getconst(duk_compiler_ctx *comp_ctx)
DUK_INTERNAL void duk_err_create_and_throw(duk_hthread *thr, duk_errcode_t code, const char *msg, const char *filename, duk_int_t line)
#define DUK_RETOK_ASSERT_START
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_tostring(duk_context *ctx)
DUK_LOCAL duk_small_uint_t duk__date_get_indirect_magic(duk_hthread *thr)
#define DUK__REPLACE_BOOL_A_BREAK(bval)
#define DUK_HTHREAD_STRING_EVAL(thr)
#define DUK_STRIDX_UC_SYMBOL
#define DUK_STRIDX_TO_STRING
DUK_INTERNAL_DECL void duk_hthread_catcher_unwind_norz(duk_hthread *thr, duk_activation *act)
#define DUK_HOBJECT_CMASK_FUNCTION
DUK_LOCAL void duk__insert_slice(duk_re_compiler_ctx *re_ctx, duk_uint32_t offset, duk_uint32_t data_offset, duk_uint32_t data_length)
#define DUK_TVAL_SET_DOUBLE(tv, val)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_constructor_now(duk_context *ctx)
DUK_LOCAL_DECL void duk__json_enc_array(duk_json_enc_ctx *js_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_prototype_value_of(duk_context *ctx)
#define DUK_HCOMPFUNC_GET_CODE_COUNT(heap, h)
DUK_LOCAL void duk__cbor_encode_double_fp(duk_cbor_encode_context *enc_ctx, double d)
#define DUK__STRFTIME_BUF_SIZE
DUK_INTERNAL_DECL duk_hproxy * duk_hproxy_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
DUK_LOCAL void duk__create_arguments_object(duk_hthread *thr, duk_hobject *func, duk_hobject *varenv, duk_idx_t idx_args)
DUK_INTERNAL_DECL duk_bool_t duk_js_getvar_activation(duk_hthread *thr, duk_activation *act, duk_hstring *name, duk_bool_t throw_flag)
#define DUK_STRIDX_UINT8_ARRAY
#define DUK_STRIDX_LAST_INDEX
#define DUK_HOBJECT_SET_HAVE_FINALIZER(h)
#define DUK_STRIDX_START_STRICT_RESERVED
#define DUK_STR_SOURCE_DECODE_FAILED
DUK_LOCAL_DECL duk_regconst_t duk__exprtop_toreg(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t rbp_flags)
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_constructor(duk_context *ctx)
#define DUK_GET_HOBJECT_POSIDX(thr, idx)
DUK_LOCAL duk_double_t duk__cbor_decode_float(duk_cbor_decode_context *dec_ctx)
DUK_LOCAL duk_bool_t duk__hstring_is_eval_or_arguments(duk_compiler_ctx *comp_ctx, duk_hstring *h)
DUK_INTERNAL_DECL void duk_pop_n_unsafe(duk_hthread *thr, duk_idx_t count)
#define DUK_STRIDX_UINT16_ARRAY
DUK_LOCAL DUK_NOINLINE duk_catcher * duk__hthread_catcher_alloc_slow(duk_hthread *thr)
DUK_LOCAL_DECL void duk__exprtop(duk_compiler_ctx *ctx, duk_ivalue *res, duk_small_uint_t rbp_flags)
DUK_LOCAL DUK__RZ_INLINE void duk__hstring_refzero_helper(duk_hthread *thr, duk_hstring *h)
DUK_INTERNAL_DECL duk_hstring * duk_heap_strtable_intern_literal_checked(duk_hthread *thr, const duk_uint8_t *str, duk_uint32_t blen)
DUK_INTERNAL_DECL void duk_hbuffer_refzero(duk_hthread *thr, duk_hbuffer *h)
DUK_EXTERNAL void duk_get_finalizer(duk_hthread *thr, duk_idx_t idx)
#define DUK_HCOMPFUNC_GET_FUNCS_BASE(heap, h)
DUK_LOCAL_DECL void duk__json_dec_objarr_exit(duk_json_dec_ctx *js_ctx)
#define DUK__COMPILE_ENTRY_SLOTS
DUK_LOCAL const duk_uint16_t *const duk__re_range_lookup1[3]
#define DUK_HOBJECT_E_GET_VALUE_PTR(heap, h, i)
#define DUK_STR_INVALID_QUANTIFIER_VALUES
#define DUK_HOBJECT_PROTOTYPE_CHAIN_SANITY
DUK_LOCAL duk_small_int_t duk__dragon4_fixed_format_round(duk__numconv_stringify_ctx *nc_ctx, duk_small_int_t round_idx)
DUK_EXTERNAL void duk_resume(duk_hthread *thr, const duk_thread_state *state)
DUK_LOCAL duk_bool_t duk__delvar_helper(duk_hthread *thr, duk_hobject *env, duk_activation *act, duk_hstring *name)
DUK_EXTERNAL void * duk_get_pointer(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_int_t duk__day_from_year(duk_int_t year)
DUK_EXTERNAL void * duk_get_heapptr(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL duk_bool_t duk_put_global_heapptr(duk_hthread *thr, void *ptr)
#define DUK_TOK_RSHIFT_EQ
DUK_INTERNAL_DECL void duk_pop_2_unsafe(duk_hthread *thr)
#define DUK__SYNC_AND_NULL_CURR_PC()
DUK_INTERNAL_DECL duk_hstring * duk_to_hstring(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL duk_uint_t duk_get_uint(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_bool_t duk_double_is_anyinf(duk_double_t x)
DUK_INTERNAL_DECL duk_bool_t duk_double_is_finite(duk_double_t x)
DUK_LOCAL void duk__append_7bit(duk_re_compiler_ctx *re_ctx, duk_uint32_t x)
DUK_INTERNAL_DECL void duk_lexer_parse_re_token(duk_lexer_ctx *lex_ctx, duk_re_token *out_token)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_hasprop(duk_hthread *thr, duk_tval *tv_obj, duk_tval *tv_key)
#define DUK_STR_TEMP_LIMIT
DUK_LOCAL_DECL void duk__mark_heaphdr_nonnull(duk_heap *heap, duk_heaphdr *h)
DUK_LOCAL DUK_EXEC_NOINLINE_PERF void duk__handle_op_trycatch(duk_hthread *thr, duk_uint_fast32_t ins, duk_instr_t *curr_pc)
DUK_LOCAL void duk__dragon4_generate(duk__numconv_stringify_ctx *nc_ctx)
#define DUK__REPLACE_TOP_BC_BREAK()
DUK_INTERNAL_DECL duk_uint32_t duk_raw_readinc_u32_be(const duk_uint8_t **p)
DUK_LOCAL void duk__transform_callback_escape(duk__transform_context *tfm_ctx, const void *udata, duk_codepoint_t cp)
DUK_LOCAL_DECL void duk__reset_labels_to_length(duk_compiler_ctx *comp_ctx, duk_size_t len)
DUK_EXTERNAL void duk_call_prop(duk_hthread *thr, duk_idx_t obj_idx, duk_idx_t nargs)
DUK_LOCAL void duk__utf8_decode_init(duk__decode_context *dec_ctx)
#define DUK_BW_WRITE_ENSURE_HSTRING(thr, bw_ctx, val)
DUK_LOCAL duk_heaphdr * duk_hobject_get_internal_value_heaphdr(duk_heap *heap, duk_hobject *obj)
#define DUK_HSTRING_SET_STRICT_RESERVED_WORD(x)
#define DUK_HOBJECT_CLASS_DECENV
DUK_EXTERNAL duk_bool_t duk_has_prop(duk_hthread *thr, duk_idx_t obj_idx)
DUK_INTERNAL_DECL void duk_heaphdr_refzero(duk_hthread *thr, duk_heaphdr *h)
#define DUK_N2S_FLAG_FRACTION_DIGITS
#define DUK_HOBJECT_MAX_PROPERTIES
DUK_INTERNAL_DECL void duk_hobject_enumerator_create(duk_hthread *thr, duk_small_uint_t enum_flags)
#define DUK_ERROR_FMT2(thr, err, fmt, arg1, arg2)
DUK_LOCAL const duk_uint8_t duk__str2num_digits_for_radix[]
#define DUK_RETOK_ASSERT_START_POS_LOOKAHEAD
DUK_EXTERNAL duk_bool_t duk_put_prop_literal_raw(duk_hthread *thr, duk_idx_t obj_idx, const char *key, duk_size_t key_len)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_prototype_set_shared(duk_context *ctx)
#define DUK_DELPROP_FLAG_FORCE
DUK_LOCAL_DECL void duk__advance_expect(duk_compiler_ctx *comp_ctx, duk_small_int_t expect)
DUK_INTERNAL_DECL duk_bool_t duk_float_equals(duk_float_t x, duk_float_t y)
#define DUK_S2N_FLAG_ALLOW_EMPTY_AS_ZERO
#define DUK__IEEE_DOUBLE_EXP_MIN
#define DUK_BW_REMOVE_ENSURE_SLICE(thr, bw, off, len)
DUK_EXTERNAL void duk_require_null(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_ENC_RECLIMIT
DUK_INTERNAL_DECL void duk_dup_m4(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_numconv_stringify(duk_hthread *thr, duk_small_int_t radix, duk_small_int_t digits, duk_small_uint_t flags)
DUK_INTERNAL_DECL duk_float_t duk_raw_read_float_be(const duk_uint8_t *p)
DUK_INTERNAL_DECL duk_hstring * duk_to_hstring_acceptsymbol(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL double duk__log10(double x)
#define DUK_HOBJECT_HAS_FINALIZER_FAST(heap, h)
DUK_EXTERNAL duk_bool_t duk_next(duk_hthread *thr, duk_idx_t enum_index, duk_bool_t get_value)
struct duk_hbuffer_fixed duk_hbuffer_fixed
DUK_LOCAL_DECL void duk__insert_jump_entry(duk_compiler_ctx *comp_ctx, duk_int_t jump_pc)
#define DUK_HOBJECT_IS_FUNCTION(h)
#define duk_memcpy(dst, src, len)
DUK_LOCAL duk_bool_t duk__tag_check(duk_hthread *thr, duk_idx_t idx, duk_small_uint_t tag)
#define DUK_BW_INIT_PUSHBUF(thr, bw_ctx, sz)
DUK_INTERNAL_DECL void duk_free_hstring(duk_heap *heap, duk_hstring *h)
DUK_INTERNAL_DECL void duk_dblunion_host_to_little(duk_double_union *u)
#define DUK_BIDX_BOOLEAN_PROTOTYPE
DUK_EXTERNAL void duk_push_number(duk_hthread *thr, duk_double_t val)
#define DUK_STR_INVALID_BREAK_CONT_LABEL
struct duk_tval_struct duk_tval
#define DUK_DBG_IB_UNDEFINED
DUK_EXTERNAL duk_int_t duk_eval_raw(duk_hthread *thr, const char *src_buffer, duk_size_t src_length, duk_uint_t flags)
DUK_INTERNAL_DECL duk_bool_t duk_is_bare_object(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL_DECL void duk__json_enc_bufobj(duk_json_enc_ctx *js_ctx, duk_hbufobj *h_bufobj)
DUK_EXTERNAL void * duk_require_pointer(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_prototype_to_locale_string(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_boolean_prototype_tostring_shared(duk_context *ctx)
DUK_LOCAL void duk__strtable_shrink_inplace(duk_heap *heap)
DUK_LOCAL void duk__dragon4_convert_and_push(duk__numconv_stringify_ctx *nc_ctx, duk_hthread *thr, duk_small_int_t radix, duk_small_int_t digits, duk_small_uint_t flags, duk_small_int_t neg)
DUK_INTERNAL_DECL duk_small_int_t duk_js_string_compare(duk_hstring *h1, duk_hstring *h2)
#define DUK_HOBJECT_SET_ENEXT(h, v)
#define DUK_OP_POSTINCP_CR
#define DUK_STRIDX_LC_STRING
#define DUK__DECREF_SHARED()
#define DUK_HBUFFER_FIXED_GET_DATA_PTR(heap, x)
DUK_LOCAL duk_bool_t duk__cbor_decode_array(duk_cbor_decode_context *dec_ctx, duk_uint8_t ib, duk_uint8_t ai)
#define DUK_LFUNC_LENGTH_MIN
#define DUK__LONGJMP_RESTART
DUK_INTERNAL_DECL void duk_err_augment_error_throw(duk_hthread *thr)
#define DUK_STR_INVALID_BASE
DUK_LOCAL duk_ret_t duk__parse_string(duk_hthread *thr, const char *str)
DUK_INTERNAL_DECL duk_double_t duk_double_div(duk_double_t x, duk_double_t y)
DUK_LOCAL const duk_uint8_t * duk__scan_forwards(const duk_uint8_t *p, const duk_uint8_t *q, duk_uint_fast32_t n)
#define DUK_HSTRING_SET_HASH(x, v)
DUK_INTERNAL_DECL duk_double_t duk_double_fmax(duk_double_t x, duk_double_t y)
DUK_EXTERNAL duk_bool_t duk_check_type_mask(duk_hthread *thr, duk_idx_t idx, duk_uint_t mask)
DUK_LOCAL const duk_uint8_t duk__encode_uricomponent_unescaped_table[16]
DUK_INTERNAL_DECL duk_small_uint_t duk_bd_decode_bitpacked_string(duk_bitdecoder_ctx *bd, duk_uint8_t *out)
#define DUK_HOBJECT_CLASS_MAX
DUK_LOCAL const duk_int8_t duk__base64_dectab_fast[256]
DUK_LOCAL const duk_uint8_t * duk__load_string_raw(duk_hthread *thr, const duk_uint8_t *p)
DUK_EXTERNAL void * duk_opt_heapptr(duk_hthread *thr, duk_idx_t idx, void *def_value)
DUK_EXTERNAL void duk_push_uint(duk_hthread *thr, duk_uint_t val)
#define DUK_STR_WRONG_BUFFER_TYPE
DUK_LOCAL duk__decode_context * duk__get_textdecoder_context(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_raw_writeinc_cesu8(duk_uint8_t **p, duk_ucodepoint_t val)
#define DUK_DBG_ERR_UNSUPPORTED
DUK_LOCAL const duk_uint8_t * duk__utf8_advance(duk_hthread *thr, const duk_uint8_t **ptr, const duk_uint8_t *ptr_start, const duk_uint8_t *ptr_end, duk_uint_fast32_t count)
DUK_LOCAL void duk__handle_label(duk_hthread *thr, duk_small_uint_t lj_type)
DUK_LOCAL_DECL duk_heaphdr * duk__get_tagged_heaphdr_raw(duk_hthread *thr, duk_idx_t idx, duk_uint_t tag)
#define DUK_HCOMPFUNC_GET_CODE_SIZE(heap, h)
DUK_LOCAL double duk__fabs(double x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_match(duk_context *ctx)
DUK_LOCAL_DECL void duk__grow_props_for_array_item(duk_hthread *thr, duk_hobject *obj, duk_uint32_t highest_arr_idx)
#define DUK_STRIDX_INT_TARGET
DUK_LOCAL_DECL void duk__nud_object_literal(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
#define DUK_STR_WITH_IN_STRICT_MODE
DUK_LOCAL duk_bool_t duk__compare_fastint(duk_bool_t retval, duk_int64_t v1, duk_int64_t v2)
#define DUK_HOBJECT_FLAG_CALLABLE
#define DUK_BW_GET_PTR(thr, bw_ctx)
#define DUK_STR_NOT_CONFIGURABLE
DUK_LOCAL_DECL void duk__emit_load_int32(duk_compiler_ctx *comp_ctx, duk_regconst_t reg, duk_int32_t val)
DUK_LOCAL const duk_uint8_t duk__json_decnumber_lookup[256]
#define DUK_HSTRING_SET_ARRIDX(x)
#define DUK_HTHREAD_STRING_TO_JSON(thr)
DUK_LOCAL void duk__cbor_encode_double(duk_cbor_encode_context *enc_ctx, double d)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_prototype_chain_contains(duk_hthread *thr, duk_hobject *h, duk_hobject *p, duk_bool_t ignore_loop)
#define DUK__WEEKDAY_MOD_ADDER
DUK_INTERNAL_DECL void duk_push_class_string_tval(duk_hthread *thr, duk_tval *tv, duk_bool_t avoid_side_effects)
DUK_LOCAL_DECL void duk__patch_jump(duk_compiler_ctx *comp_ctx, duk_int_t jump_pc, duk_int_t target_pc)
DUK_INTERNAL const duk_int16_t duk_hex_dectab_shift4[256]
#define DUK_HEAP_STRINGCACHE_NOCACHE_LIMIT
#define DUK_VALSTACK_INITIAL_SIZE
#define DUK_HBOUNDFUNC_ASSERT_VALID(h)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_proxy_check(duk_hobject *obj, duk_hobject **out_target, duk_hobject **out_handler)
DUK_LOCAL duk_uint32_t duk__count_used_e_keys(duk_hthread *thr, duk_hobject *obj)
#define DUK__GT_BODY(barg, carg)
DUK_LOCAL void duk__compact_object_list(duk_heap *heap, duk_hthread *thr, duk_heaphdr *start)
#define DUK_LFUNC_FLAGS_GET_MAGIC(lf_flags)
DUK_EXTERNAL duk_idx_t duk_push_c_function(duk_hthread *thr, duk_c_function func, duk_int_t nargs)
#define DUK_RETOK_ATOM_NOT_DIGIT
DUK_INTERNAL_DECL duk_small_int_t duk_raw_write_cesu8(duk_uint8_t *p, duk_ucodepoint_t val)
DUK_LOCAL duk_ret_t duk__pcall_prop_raw(duk_hthread *thr, void *udata)
DUK_INTERNAL_DECL duk_ret_t duk_bi_error_prototype_to_string(duk_context *ctx)
#define DUK_STR_INVALID_REGEXP_GROUP
#define DUK_AUGMENT_FLAG_SKIP_ONE
DUK_INTERNAL_DECL void duk_push_symbol_descriptive_string(duk_hthread *thr, duk_hstring *h)
#define DUK_STRIDX_INT_TRACEDATA
DUK_LOCAL void duk__cbor_encode_uint32(duk_cbor_encode_context *enc_ctx, duk_uint32_t u, duk_uint8_t base)
#define DUK__DECREF_ASSERTS()
#define DUK__ALLOCTEMPS(comp_ctx, count)
#define DUK_ISPEC_REGCONST
#define DUK__STRTAB_U32_MAX_STRLEN
#define DUK_HOBJECT_E_SET_FLAGS(heap, h, i, f)
#define DUK__PROP_TYPE_BITS
#define DUK_S2N_MAX_EXPONENT
#define DUK__BI_PRINT(name, x)
#define DUK_CTX_ASSERT_VALID(thr)
DUK_LOCAL_DECL void duk__reset_func_for_pass2(duk_compiler_ctx *comp_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_decode_uri_component(duk_context *ctx)
DUK_EXTERNAL void duk_require_constructor_call(duk_hthread *thr)
#define DUK__RETHAND_FINISHED
#define DUK_STRIDX_UINT32_ARRAY
DUK_INTERNAL_DECL duk_bool_t duk_js_compare_helper(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y, duk_small_uint_t flags)
#define DUK_HOBJECT_SET_CONSTRUCTABLE(h)
DUK_LOCAL duk_uint8_t duk__date_equivyear[14]
DUK_INTERNAL_DECL duk_double_t duk_util_get_random_double(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_hobject_object_get_own_property_descriptor(duk_hthread *thr, duk_idx_t obj_idx)
#define DUK_TAG_UNDEFINED
DUK_LOCAL_DECL void duk__exprtop_toforcedreg(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t rbp_flags, duk_regconst_t forced_reg)
#define DUK_HCOMPFUNC_GET_CONSTS_END(heap, h)
#define DUK_S2N_FLAG_ALLOW_PLUS
#define DUK__GE_BODY(barg, carg)
DUK_LOCAL void duk__mark_finalizable(duk_heap *heap)
#define DUK_HEAPHDR_HAS_FINALIZED(h)
#define DUK__REGCONSTP_B(ins)
DUK_LOCAL void duk__cbor_decode(duk_hthread *thr, duk_idx_t idx, duk_uint_t decode_flags)
DUK_LOCAL_DECL void duk__emit_invalid(duk_compiler_ctx *comp_ctx)
#define DUK_STR_INVALID_CONTEXT
#define DUK_STRIDX_UC_ARRAY
DUK_INTERNAL_DECL duk_uint_fast32_t duk_hthread_get_act_prev_pc(duk_hthread *thr, duk_activation *act)
#define DUK_PROPDESC_FLAGS_WC
#define DUK__CONST_MARKER
DUK_INTERNAL_DECL void duk_hthread_catcher_unwind_nolexenv_norz(duk_hthread *thr, duk_activation *act)
DUK_INTERNAL DUK_COLD void duk_err_type_invalid_trap_result(duk_hthread *thr, const char *filename, duk_int_t linenumber)
DUK_INTERNAL_DECL void duk_raw_write_float_be(duk_uint8_t *p, duk_float_t val)
DUK_LOCAL duk_bool_t duk__abandon_array_check(duk_hthread *thr, duk_uint32_t arr_idx, duk_hobject *obj)
#define DUK_DBLUNION_SET_LOW32(u, v)
#define DUK_HOBJECT_HAS_SPECIAL_CALL(h)
#define DUK_HTHREAD_GET_STRING(thr, idx)
#define DUK_ASSERT_VS_SPACE(thr)
#define DUK_HOBJECT_IS_DECENV(h)
#define DUK_HCOMPFUNC_SET_LEXENV(heap, h, v)
DUK_EXTERNAL void duk_push_nan(duk_hthread *thr)
DUK_INTERNAL_DECL duk_bool_t duk_bi_date_year_in_valid_range(duk_double_t year)
#define DUK_STR_NOT_STRING
#define DUK_PROPDESC_FLAG_WRITABLE
#define DUK_HSTRING_SET_RESERVED_WORD(x)
DUK_INTERNAL_DECL duk_activation * duk_hthread_get_activation_for_level(duk_hthread *thr, duk_int_t level)
DUK_INTERNAL_DECL void duk_call_construct_postprocess(duk_hthread *thr, duk_small_uint_t proxy_invariant)
#define DUK_HEAP_GET_STRING(heap, idx)
#define DUK_STR_INVALID_CFUNC_RC
DUK_INTERNAL DUK_COLD void duk_err_handle_error(duk_hthread *thr, const char *filename, duk_uint_t line_and_code, const char *msg)
DUK_LOCAL const duk_tval_unused duk__const_tval_unused
#define DUK__HASH_DELETED
DUK_LOCAL_DECL void duk__json_enc_key_autoquote(duk_json_enc_ctx *js_ctx, duk_hstring *k)
#define DUK_OP_POSTDECP_CC
#define DUK_HEAP_ALLOC_FAIL_MARKANDSWEEP_LIMIT
#define DUK_BC_LDINTX_SHIFT
#define DUK_BC_TRYCATCH_FLAG_WITH_BINDING
DUK_LOCAL DUK_COLD duk_size_t duk__hstring_get_charlen_slowpath(duk_hstring *h)
#define duk_js_equals(thr, tv_x, tv_y)
#define DUK_BIDX_THREAD_PROTOTYPE
#define DUK_ALLOC_CHECKED_ZEROED(thr, size)
#define DUK_REOP_BACKREFERENCE
DUK_EXTERNAL duk_bool_t duk_instanceof(duk_hthread *thr, duk_idx_t idx1, duk_idx_t idx2)
DUK_LOCAL void duk__update_lineinfo_currtoken(duk_compiler_ctx *comp_ctx)
DUK_EXTERNAL void * duk_push_buffer_raw(duk_hthread *thr, duk_size_t size, duk_small_uint_t flags)
#define DUK_STR_PUSH_BEYOND_ALLOC_STACK
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_seal_freeze_shared(duk_context *ctx)
DUK_EXTERNAL duk_uint_t duk_to_uint(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_CALLSTACK_LIMIT
#define DUK__ARRAY_MID_JOIN_LIMIT
#define DUK__RECURSION_INCREASE(comp_ctx, thr)
#define duk_xdef_prop_wec(thr, obj_idx)
#define DUK_HCOMPFUNC_GET_BYTECODE(heap, h)
struct duk_harray duk_harray
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_prototype_has_own_property(duk_context *ctx)
DUK_INTERNAL_DECL duk_tval * duk_hobject_get_internal_value_tval_ptr(duk_heap *heap, duk_hobject *obj)
DUK_EXTERNAL duk_double_t duk_random(duk_hthread *thr)
DUK_LOCAL void duk__parse_disjunction(duk_re_compiler_ctx *re_ctx, duk_bool_t expect_eof, duk__re_disjunction_info *out_atom_info)
#define DUK__READABLE_SUMMARY_MAXCHARS
DUK_LOCAL void duk__add_compiler_error_line(duk_hthread *thr)
DUK_INTERNAL_DECL duk_small_int_t duk_js_data_compare(const duk_uint8_t *buf1, const duk_uint8_t *buf2, duk_size_t len1, duk_size_t len2)
#define DUK_DCERROR_TYPE_INVALID_STATE(thr)
DUK_EXTERNAL void * duk_realloc(duk_hthread *thr, void *ptr, duk_size_t size)
#define DUK_ERROR_RANGE_INVALID_COUNT(thr)
#define DUK_TVAL_GET_POINTER(tv)
#define DUK_HOBJECT_CLASS_INT8ARRAY
DUK_LOCAL DUK__RZ_INLINE void duk__heaphdr_refzero_helper(duk_hthread *thr, duk_heaphdr *h, duk_bool_t skip_free_pending)
#define DUK__HEAPPTR_DEC16(heap, val)
DUK_INTERNAL_DECL duk_bool_t duk_del_prop_stridx(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t stridx)
#define DUK_RETOK_QUANTIFIER
DUK_INTERNAL_DECL duk_hcompfunc * duk_require_hcompfunc(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_bool_t duk__get_identifier_reference(duk_hthread *thr, duk_hobject *env, duk_hstring *name, duk_activation *act, duk_bool_t parents, duk__id_lookup_result *out)
#define DUK_STR_FUNC_LIMIT
DUK_EXTERNAL duk_int_t duk_compile_raw(duk_hthread *thr, const char *src_buffer, duk_size_t src_length, duk_uint_t flags)
DUK_INTERNAL_DECL duk_ret_t duk_bi_function_prototype_call(duk_context *ctx)
#define DUK_STRIDX_LC_NUMBER
DUK_LOCAL void duk__sweep_stringtable(duk_heap *heap, duk_size_t *out_count_keep)
DUK_INTERNAL_DECL void duk_lexer_initctx(duk_lexer_ctx *lex_ctx)
DUK_LOCAL void duk__cbor_decode_push_aival_int(duk_cbor_decode_context *dec_ctx, duk_uint8_t ib, duk_bool_t negative)
DUK_EXTERNAL duk_bool_t duk_is_nan(duk_hthread *thr, duk_idx_t idx)
#define DUK_HSTRING_SET_ASCII(x)
DUK_LOCAL_DECL void duk__parse_for_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_int_t pc_label_site)
DUK_LOCAL void duk__format_parts_iso8601(duk_int_t *parts, duk_int_t tzoffset, duk_small_uint_t flags, duk_uint8_t *out_buf)
DUK_EXTERNAL void duk_push_boolean(duk_hthread *thr, duk_bool_t val)
#define DUK_REOP_WIPERANGE
DUK_EXTERNAL void duk_to_primitive(duk_hthread *thr, duk_idx_t idx, duk_int_t hint)
DUK_LOCAL const char * duk__push_string_tval_readable(duk_hthread *thr, duk_tval *tv, duk_bool_t error_aware)
DUK_EXTERNAL duk_hthread * duk_get_context(duk_hthread *thr, duk_idx_t idx)
#define DUK_DCERROR_UNSUPPORTED(thr)
#define DUK__PROP_TYPE_STRIDX
DUK_INTERNAL_DECL duk_hcompfunc * duk_get_hcompfunc(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_hstring * duk_to_property_key_hstring(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL_DECL void duk__lookup_active_label(duk_compiler_ctx *comp_ctx, duk_hstring *h_label, duk_bool_t is_break, duk_int_t *out_label_id, duk_int_t *out_label_catch_depth, duk_int_t *out_label_pc, duk_bool_t *out_is_closest)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_iter_shared(duk_context *ctx)
DUK_INTERNAL_DECL void duk_hbufobj_push_validated_read(duk_hthread *thr, duk_hbufobj *h_bufobj, duk_uint8_t *p, duk_small_uint_t elem_size)
DUK_INTERNAL_DECL void duk_hobject_define_property_internal(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_small_uint_t flags)
DUK_INTERNAL_DECL duk_int_t duk_handle_call_unprotected_nargs(duk_hthread *thr, duk_idx_t nargs, duk_small_uint_t call_flags)
DUK_INTERNAL_DECL duk_double_t duk_to_number_m2(duk_hthread *thr)
#define DUK__REGCONSTP_C(ins)
DUK_LOCAL DUK_ALWAYS_INLINE void duk__call_callstack_limit_check(duk_hthread *thr)
DUK_LOCAL_DECL duk_regconst_t duk__alloctemp(duk_compiler_ctx *comp_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_prototype_value_of(duk_context *ctx)
#define DUK_STRIDX_INFINITY
#define DUK_HOBJECT_HAS_EXOTIC_PROXYOBJ(h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_is_extensible(duk_context *ctx)
#define DUK_DBG_ERR_TOOMANY
#define DUK_HSTRING_HAS_HIDDEN(x)
#define DUK_HOBJECT_IS_ARRAY(h)
DUK_LOCAL duk_ret_t duk__math_minmax(duk_hthread *thr, duk_double_t initial, duk__two_arg_func min_max)
DUK_LOCAL void duk__bi_exp_small(duk__bigint *x, duk_small_int_t b, duk_small_int_t y, duk__bigint *t1, duk__bigint *t2)
DUK_INTERNAL_DECL int duk_repl_isnan(double x)
#define DUK_HCOMPFUNC_GET_FUNCS(heap, h)
#define DUK_HOBJECT_FLAG_EXOTIC_PROXYOBJ
#define DUK_STR_INVALID_RANGE
DUK_LOCAL_DECL void duk__emit_1(duk_json_enc_ctx *js_ctx, duk_uint_fast8_t ch)
DUK_LOCAL void duk__bi_sub(duk__bigint *x, duk__bigint *y, duk__bigint *z)
#define DUK_HEAPHDR_SET_TYPE_AND_FLAGS(h, tval, fval)
#define DUK_HOBJECT_CMASK_SYMBOL
DUK_EXTERNAL duk_double_t duk_components_to_time(duk_hthread *thr, duk_time_components *comp)
#define DUK_HOBJECT_HAS_EXOTIC_BEHAVIOR(h)
#define DUK_RAW_WRITEINC_U32_BE(ptr, val)
#define DUK_HEAP_STRCACHE_SIZE
DUK_INTERNAL_DECL duk_hbuffer * duk_hbuffer_alloc(duk_heap *heap, duk_size_t size, duk_small_uint_t flags, void **out_bufdata)
DUK_EXTERNAL duk_idx_t duk_push_c_lightfunc(duk_hthread *thr, duk_c_function func, duk_idx_t nargs, duk_idx_t length, duk_int_t magic)
DUK_LOCAL void duk__mark_finalize_list(duk_heap *heap)
#define DUK_HEAP_SET_INTERRUPT_RUNNING(heap)
#define DUK_STRIDX_OBJ_ENV
DUK_INTERNAL_DECL duk_int_t duk_pcall_method_flags(duk_hthread *thr, duk_idx_t nargs, duk_small_uint_t call_flags)
DUK_LOCAL const duk_uint8_t duk__escape_unescaped_table[16]
DUK_INTERNAL_DECL duk_uint32_t duk_bd_decode_flagged(duk_bitdecoder_ctx *ctx, duk_small_int_t bits, duk_uint32_t def_value)
DUK_LOCAL_DECL void duk__json_dec_value(duk_json_dec_ctx *js_ctx)
#define DUK_HBUFOBJ_ELEM_UINT16
DUK_LOCAL_DECL void duk__parse_do_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_int_t pc_label_site)
DUK_LOCAL duk_ret_t duk__pcall_method_raw(duk_hthread *thr, void *udata)
DUK_LOCAL void duk__cbor_decode_error(duk_cbor_decode_context *dec_ctx)
DUK_LOCAL const char *const duk__symbol_type_strings[4]
#define DUK_ASSERT_TOP(ctx, n)
#define DUK__PARSE_STATEMENTS_SLOTS
#define DUK_LJ_TYPE_RESUME
DUK_INTERNAL_DECL duk_int_t duk_bi_date_get_local_tzoffset_gmtime(duk_double_t d)
DUK_LOCAL_DECL void duk__ivalue_toforcedreg(duk_compiler_ctx *comp_ctx, duk_ivalue *x, duk_int_t forced_reg)
DUK_EXTERNAL duk_bool_t duk_has_prop_string(duk_hthread *thr, duk_idx_t obj_idx, const char *key)
#define DUK_BW_WRITE_RAW_XUTF8(thr, bw_ctx, cp)
DUK_INTERNAL_DECL duk_tval * duk_reserve_gap(duk_hthread *thr, duk_idx_t idx_base, duk_idx_t count)
#define DUK__EMIT_FLAG_NO_SHUFFLE_A
#define DUK_STRIDX_IGNORE_CASE
DUK_EXTERNAL duk_ret_t duk_type_error_stash(duk_hthread *thr, const char *fmt,...)
#define DUK_BIDX_NODEJS_BUFFER_PROTOTYPE
#define DUK_HEAP_CLEAR_DEBUGGER_PAUSED(heap)
DUK_LOCAL duk_ret_t duk__pcall_raw(duk_hthread *thr, void *udata)
DUK_INTERNAL_DECL duk_double_t duk_raw_read_double_be(const duk_uint8_t *p)
DUK_EXTERNAL duk_ret_t duk_range_error_stash(duk_hthread *thr, const char *fmt,...)
#define DUK_HOBJECT_CMASK_POINTER
DUK_EXTERNAL const char * duk_json_encode(duk_hthread *thr, duk_idx_t idx)
#define DUK_STRIDX_JSON_EXT_NEGINF
DUK_INTERNAL const duk_uint16_t duk_unicode_re_ranges_wordchar[8]
static const duk_uint8_t duk__buffer_proto_from_classnum[]
#define DUK_HOBJECT_SET_PROTOTYPE(heap, h, x)
#define DUK_HBUFFER_EXTERNAL_GET_SIZE(x)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_define_property_helper(duk_hthread *thr, duk_uint_t defprop_flags, duk_hobject *obj, duk_hstring *key, duk_idx_t idx_value, duk_hobject *get, duk_hobject *set, duk_bool_t throw_flag)
#define DUK_TVAL_IS_VALID_TAG(tv)
#define DUK_OP_PREDECP_RC
DUK_EXTERNAL void duk_debugger_cooperate(duk_hthread *thr)
#define DUK_HOBJECT_FLAG_EXOTIC_ARRAY
#define DUK_HOBJECT_FLAG_EXTENSIBLE
#define DUK_BC_CALL_FLAG_CONSTRUCT
DUK_NORETURN(DUK_INTERNAL_DECL void duk_err_handle_error(duk_hthread *thr, const char *filename, duk_uint_t line_and_code, const char *msg))
DUK_INTERNAL_DECL duk_hstring * duk_heap_strtable_intern_u32_checked(duk_hthread *thr, duk_uint32_t val)
#define DUK_REOP_ASSERT_START
#define DUK_EXEC_ALWAYS_INLINE_PERF
DUK_LOCAL DUK_ALWAYS_INLINE void duk__base64_encode_fast_3(const duk_uint8_t *src, duk_uint8_t *dst)
DUK_LOCAL void duk__handle_proxy_for_call(duk_hthread *thr, duk_idx_t idx_func, duk_hproxy *h_proxy, duk_small_uint_t *call_flags)
#define DUK__BP_MULTIPLICATIVE
#define DUK_STR_INVALID_REGEXP_FLAGS
DUK_LOCAL duk_small_uint_t duk__call_setup_act_attempt_tailcall(duk_hthread *thr, duk_small_uint_t call_flags, duk_idx_t idx_func, duk_hobject *func, duk_size_t entry_valstack_bottom_byteoff, duk_size_t entry_valstack_end_byteoff, duk_idx_t *out_nargs, duk_idx_t *out_nregs, duk_size_t *out_vs_min_bytes, duk_activation **out_act)
DUK_LOCAL void duk__regexp_match_helper(duk_hthread *thr, duk_small_int_t force_global)
#define DUK_HBUFOBJ_GET_SLICE_BASE(heap, h)
#define DUK_STRIDX_INT16_ARRAY
DUK_INTERNAL_DECL duk_small_int_t duk_memcmp_unsafe(const void *s1, const void *s2, duk_size_t len)
DUK_INTERNAL_DECL void duk_bw_compact(duk_hthread *thr, duk_bufwriter_ctx *bw_ctx)
#define DUK_RE_QUANTIFIER_INFINITE
#define DUK__EMIT_HSTR(js_ctx, h)
#define DUK_N2S_FLAG_NO_ZERO_PAD
DUK_LOCAL void duk__wipe_litcache(duk_heap *heap)
DUK_LOCAL const char * duk__get_symbol_type_string(duk_hstring *h)
#define DUK_PROPDESC_IS_ENUMERABLE(p)
#define DUK_HSTRING_FLAG_STRICT_RESERVED_WORD
DUK_LOCAL duk_hbuffer * duk__hbufobj_fixed_from_argvalue(duk_hthread *thr)
DUK_INTERNAL_DECL duk_ret_t duk_bi_textencoder_constructor(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_reflect_object_delete_property(duk_context *ctx)
#define DUK_HOBJECT_SET_ASIZE(h, v)
#define DUK_ENC_OP_ABC(op, abc)
#define DUK__CONSTP_BC(ins)
#define DUK_DBG_CMD_PUTVAR
DUK_EXTERNAL duk_ret_t duk_error_stash(duk_hthread *thr, duk_errcode_t err_code, const char *fmt,...)
DUK_LOCAL duk_uint_t duk__api_coerce_d2ui(duk_hthread *thr, duk_idx_t idx, duk_uint_t def_value, duk_bool_t require)
#define DUK_TVAL_GET_FASTINT_I32(tv)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_prototype_to_json(duk_context *ctx)
DUK_LOCAL duk_double_t duk__cbor_decode_double(duk_cbor_decode_context *dec_ctx)
#define DUK_OP_PUTPROP_RR
DUK_LOCAL double duk__log2(double x)
DUK_LOCAL duk_ret_t duk__set_part_helper(duk_hthread *thr, duk_small_uint_t flags_and_maxnargs)
#define DUK_OP_POSTDECP_CR
DUK_EXTERNAL void duk_inspect_callstack_entry(duk_hthread *thr, duk_int_t level)
#define DUK__PROP_TYPE_STRING
DUK_LOCAL_DECL void duk__json_dec_pointer(duk_json_dec_ctx *js_ctx)
#define DUK_PROPDESC_FLAGS_WEC
DUK_EXTERNAL duk_bool_t duk_get_prop_string(duk_hthread *thr, duk_idx_t obj_idx, const char *key)
#define DUK_STRIDX_TO_TOK(x)
DUK_INTERNAL_DECL void duk_bw_insert_raw_slice(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t dst_off, duk_size_t src_off, duk_size_t len)
#define DUK_RAW_WRITEINC_U16_BE(ptr, val)
DUK_LOCAL duk_uint8_t * duk__dump_buffer_prop(duk_hthread *thr, duk_uint8_t *p, duk_bufwriter_ctx *bw_ctx, duk_hobject *func, duk_small_uint_t stridx)
DUK_EXTERNAL duk_idx_t duk_push_bare_object(duk_hthread *thr)
#define DUK__CHECK_BITMASK(table, cp)
DUK_INTERNAL_DECL void duk_hbuffer_reset(duk_hthread *thr, duk_hbuffer_dynamic *buf)
DUK_EXTERNAL const char * duk_push_literal_raw(duk_hthread *thr, const char *str, duk_size_t len)
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_twoarg_shared(duk_context *ctx)
DUK_INTERNAL_DECL void duk_concat_2(duk_hthread *thr)
DUK_INTERNAL_DECL duk_bool_t duk_is_whole_get_int32_nonegzero(duk_double_t x, duk_int32_t *ival)
#define DUK_RETOK_ATOM_START_NONCAPTURE_GROUP
DUK_LOCAL duk_ret_t duk__array_pop_fastpath(duk_hthread *thr, duk_harray *h_arr)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_is_line_terminator(duk_codepoint_t cp)
DUK_EXTERNAL void * duk_resize_buffer(duk_hthread *thr, duk_idx_t idx, duk_size_t new_size)
DUK_LOCAL_DECL void duk__json_enc_objarr_entry(duk_json_enc_ctx *js_ctx, duk_idx_t *entry_top)
#define DUK_STR_NOT_BOOLEAN
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_constructor_is_array(duk_context *ctx)
DUK_EXTERNAL const char * duk_base64_encode(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL_DECL duk_int_t duk__get_current_pc(duk_compiler_ctx *comp_ctx)
DUK_EXTERNAL void * duk_get_buffer(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size)
DUK_INTERNAL DUK_COLD void duk_err_range_index(duk_hthread *thr, const char *filename, duk_int_t linenumber, duk_idx_t idx)
DUK_INTERNAL_DECL duk_hbufobj * duk_hbufobj_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
DUK_LOCAL_DECL duk_regconst_t duk__expr_toregconst(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t rbp_flags)
DUK_LOCAL duk_bool_t duk__sort_compare_es6(duk_hstring *a, duk_hstring *b, duk__sort_key_t val_b)
#define DUK_ACT_FLAG_CONSTRUCT_PROXY
DUK_EXTERNAL void duk_get_prop_desc(duk_hthread *thr, duk_idx_t obj_idx, duk_uint_t flags)
DUK_EXTERNAL void duk_push_pointer(duk_hthread *thr, void *val)
DUK_LOCAL duk_uint32_t duk__tval_number_to_arr_idx(duk_tval *tv)
#define DUK_HARRAY_SET_LENGTH_WRITABLE(h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_replace(duk_context *ctx)
DUK_EXTERNAL void duk_copy(duk_hthread *thr, duk_idx_t from_idx, duk_idx_t to_idx)
DUK_EXTERNAL void duk_new(duk_hthread *thr, duk_idx_t nargs)
#define DUK_STRIDX_INT_VARENV
#define DUK_DBLUNION_BSWAP64(u)
#define DUK_TVAL_GET_LIGHTFUNC(tv, out_fp, out_flags)
#define DUK_HEAPHDR_INCREF(thr, h)
#define DUK_STRIDX_JSON_EXT_NAN
#define DUK_DBG_CMD_DELBREAK
DUK_EXTERNAL void duk_set_length(duk_hthread *thr, duk_idx_t idx, duk_size_t len)
#define DUK_ALLOC_ZEROED(heap, size)
DUK_LOCAL_DECL void duk__parse_break_or_continue_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
DUK_INTERNAL_DECL duk_ret_t duk_bi_math_object_min(duk_context *ctx)
#define DUK_STR_CONST_LIMIT
#define DUK_STR_INVALID_GETSET_NAME
#define duk_push_size_t(thr, val)
DUK_INTERNAL_DECL duk_ret_t duk_bi_thread_constructor(duk_context *ctx)
#define duk_push_u32(thr, val)
DUK_LOCAL void duk__base64_encode_helper(const duk_uint8_t *src, duk_size_t srclen, duk_uint8_t *dst)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF void duk__vm_arith_add(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y, duk_small_uint_fast_t idx_z)
DUK_INTERNAL_DECL void duk_heaphdr_refcount_finalize_norz(duk_heap *heap, duk_heaphdr *hdr)
#define DUK_STRIDX_FLOAT64_ARRAY
#define DUK_HEAPHDR_IS_OBJECT(h)
#define duk_js_strict_equals(tv_x, tv_y)
#define DUK_BIDX_REGEXP_PROTOTYPE
DUK_INTERNAL_DECL duk_hobjenv * duk_hobjenv_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
#define DUK_ASSERT_BIDX_VALID(val)
#define DUK_RETOK_ATOM_WHITE
DUK_INTERNAL_DECL const char * duk_push_string_tval_readable(duk_hthread *thr, duk_tval *tv)
#define DUK_BIDX_OBJECT_CONSTRUCTOR
DUK_LOCAL_DECL duk_bool_t duk__handle_put_array_length(duk_hthread *thr, duk_hobject *obj)
DUK_INTERNAL_DECL duk_tval * duk_hobject_find_array_entry_tval_ptr(duk_heap *heap, duk_hobject *obj, duk_uarridx_t i)
#define DUK_CALL_FLAG_CALLED_AS_EVAL
#define DUK_HOBJECT_CLASS_UINT16ARRAY
DUK_LOCAL duk_uint32_t duk__push_this_obj_len_u32(duk_hthread *thr)
DUK_LOCAL_DECL void duk__json_dec_array(duk_json_dec_ctx *js_ctx)
#define DUK__BITPACK_LETTER_LIMIT
DUK_EXTERNAL duk_idx_t duk_push_error_object_raw(duk_hthread *thr, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt,...)
#define DUK_OP_GETPROPC_CR
DUK_LOCAL void duk__putvar_helper(duk_hthread *thr, duk_hobject *env, duk_activation *act, duk_hstring *name, duk_tval *val, duk_bool_t strict)
#define DUK_HOBJECT_HAS_NEWENV(h)
DUK_INTERNAL_DECL duk_bool_t duk_js_declvar_activation(duk_hthread *thr, duk_activation *act, duk_hstring *name, duk_tval *val, duk_small_uint_t prop_flags, duk_bool_t is_func_decl)
DUK_LOCAL void duk__cbor_encode_buffer(duk_cbor_encode_context *enc_ctx)
#define DUK_OP_POSTDECP_RC
DUK_EXTERNAL duk_idx_t duk_push_object(duk_hthread *thr)
DUK_INTERNAL const duk_uint8_t duk_strings_data[972]
#define DUK_HOBJECT_CLEAR_ARRAY_PART(h)
#define DUK_STRIDX_LC_SYMBOL
#define DUK_HSTRING_HAS_ARRIDX(x)
DUK_LOCAL_DECL void duk__emit_abc(duk_compiler_ctx *comp_ctx, duk_small_uint_t op, duk_regconst_t abc)
DUK_LOCAL_DECL duk_int_t duk__cleanup_varmap(duk_compiler_ctx *comp_ctx)
#define DUK_STRIDX_MINUS_ZERO
DUK_EXTERNAL const char * duk_get_lstring(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_len)
#define DUK_HSTRING_ASSERT_VALID(h)
DUK_LOCAL void duk__free_allocated(duk_heap *heap)
#define DUK_OP_PUTPROP_CC
#define DUK_STRIDX_INT_PC2LINE
#define DUK_STR_FUNC_NAME_REQUIRED
#define DUK_DBLUNION_IS_ANYINF(u)
#define DUK_VALSTACK_API_ENTRY_MINIMUM
#define DUK_RAW_WRITEINC_FLOAT_BE(ptr, val)
DUK_INTERNAL_DECL void duk_raw_write_u16_be(duk_uint8_t *p, duk_uint16_t val)
DUK_INTERNAL_DECL duk_ret_t duk_bi_typedarray_bytelength_getter(duk_context *ctx)
DUK_LOCAL_DECL void duk__parse_return_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
DUK_INTERNAL void duk_error_throw_from_negative_rc(duk_hthread *thr, duk_ret_t rc)
#define DUK_HSTRING_SET_PINNED_LITERAL(x)
DUK_LOCAL void duk__throw_error_from_stash(duk_hthread *thr, duk_errcode_t err_code, const char *fmt, va_list ap)
#define DUK_HBUFFER_EXTERNAL_SET_DATA_PTR(heap, x, v)
DUK_LOCAL void duk__push_hstring_readable_unicode(duk_hthread *thr, duk_hstring *h_input, duk_small_uint_t maxchars)
DUK_INTERNAL_DECL duk_ret_t duk_bi_cbor_decode(duk_context *ctx)
#define DUK_DBG_CMD_DUMPHEAP
DUK_INTERNAL_DECL int duk_repl_isfinite(double x)
DUK_EXTERNAL void duk_push_current_function(duk_hthread *thr)
#define DUK_TOK_INSTANCEOF
DUK_LOCAL const duk_small_uint_t duk__object_keys_enum_flags[4]
#define DUK_LJ_TYPE_BREAK
#define DUK_LFUNC_NARGS_MIN
DUK_INTERNAL_DECL duk_small_uint_t duk_double_signbit(duk_double_t x)
void *(* duk_mem_getptr)(duk_heap *heap, void *ud)
DUK_EXTERNAL const char * duk_require_string(duk_hthread *thr, duk_idx_t idx)
#define DUK_PROPDESC_FLAG_ENUMERABLE
DUK_INTERNAL_DECL duk_uint32_t duk_bd_decode_varuint(duk_bitdecoder_ctx *ctx)
DUK_EXTERNAL duk_idx_t duk_push_array(duk_hthread *thr)
const duk_uint16_t duk_unicode_re_canon_lookup[65536]
DUK_EXTERNAL duk_ret_t duk_generic_error_stash(duk_hthread *thr, const char *fmt,...)
#define DUK__SNEQ_BODY(barg, carg)
DUK_EXTERNAL duk_bool_t duk_is_array(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL void duk_push_hstring(duk_hthread *thr, duk_hstring *h)
DUK_INTERNAL_DECL void duk_pop_undefined(duk_hthread *thr)
#define DUK_HOBJECT_HAS_BUFOBJ(h)
DUK_INTERNAL_DECL duk_uint32_t duk_heap_hashstring(duk_heap *heap, const duk_uint8_t *str, duk_size_t len)
DUK_LOCAL void duk__array_sort_swap(duk_hthread *thr, duk_int_t l, duk_int_t r)
#define DUK_HCOMPFUNC_SET_BYTECODE(heap, h, v)
DUK_EXTERNAL void duk_set_finalizer(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_FUNC_STMT_NOT_ALLOWED
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_reduce_shared(duk_context *ctx)
DUK_INTERNAL_DECL void duk_hstring_refzero(duk_hthread *thr, duk_hstring *h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_encode_uri(duk_context *ctx)
#define DUK_DBLUNION_GET_SIGNBIT(u)
#define DUK_STRIDX_INT8_ARRAY
#define DUK_HEAPHDR_CLEAR_REACHABLE(h)
DUK_INTERNAL_DECL void * duk_get_buffer_data_raw(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size, void *def_ptr, duk_size_t def_len, duk_bool_t throw_flag, duk_bool_t *out_isbuffer)
DUK_INTERNAL_DECL int duk_repl_fpclassify(double x)
DUK_EXTERNAL duk_bool_t duk_is_ecmascript_function(duk_hthread *thr, duk_idx_t idx)
#define DUK_PROPDESC_IS_ACCESSOR(p)
#define DUK_HEAP_ALLOC_FAIL_MARKANDSWEEP_EMERGENCY_LIMIT
DUK_LOCAL duk_uint32_t duk__to_property_key(duk_hthread *thr, duk_idx_t idx, duk_hstring **out_h)
#define DUK_TVAL_GET_BOOLEAN(tv)
DUK_LOCAL duk_bool_t duk__base64_decode_helper(const duk_uint8_t *src, duk_size_t srclen, duk_uint8_t *dst, duk_uint8_t **out_dst_final)
DUK_INTERNAL_DECL duk_ret_t duk_bi_nodejs_buffer_is_buffer(duk_context *ctx)
DUK_INTERNAL_DECL duk_hstring * duk_push_this_coercible_to_string(duk_hthread *thr)
DUK_LOCAL void duk__regexp_emit_range(duk_re_compiler_ctx *re_ctx, duk_codepoint_t r1, duk_codepoint_t r2)
#define DUK__DELPROP_BODY(barg, carg)
DUK_LOCAL void duk__handle_safe_call_shared_unwind(duk_hthread *thr, duk_idx_t idx_retbase, duk_idx_t num_stack_rets, duk_int_t entry_call_recursion_depth, duk_hthread *entry_curr_thread, duk_instr_t **entry_ptr_curr_pc)
static duk_uint16_t duk__buffer_elemtype_copy_compatible[9]
#define DUK_STRIDX_UC_POINTER
#define DUK__PARSE_EXPR_SLOTS
#define DUK_HCOMPFUNC_GET_CODE_BASE(heap, h)
DUK_EXTERNAL duk_bool_t duk_get_prop_lstring(duk_hthread *thr, duk_idx_t obj_idx, const char *key, duk_size_t key_len)
DUK_LOCAL_DECL void duk__parse_throw_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res)
#define DUK_DBG_ERR_NOTFOUND
DUK_LOCAL void duk__init_object_parts(duk_heap *heap, duk_uint_t hobject_flags, duk_hobject *obj)
DUK_LOCAL void duk__mark_hobject(duk_heap *heap, duk_hobject *h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_error_prototype_linenumber_setter(duk_context *ctx)
DUK_LOCAL DUK_INLINE void duk__refcount_refzero_hobject(duk_heap *heap, duk_hobject *obj, duk_bool_t skip_free_pending)
DUK_LOCAL DUK_INLINE void duk__refcount_refzero_hbuffer(duk_heap *heap, duk_hbuffer *buf)
DUK_INTERNAL_DECL void * duk_heap_mem_alloc(duk_heap *heap, duk_size_t size)
#define DUK_BC_DECLVAR_FLAG_FUNC_DECL
#define DUK_RE_FLAG_IGNORE_CASE
DUK_LOCAL duk_uint32_t duk__cbor_decode_read_u32(duk_cbor_decode_context *dec_ctx)
DUK_INTERNAL_DECL void * duk_hbuffer_get_dynalloc_ptr(duk_heap *heap, void *ud)
DUK_INTERNAL_DECL duk_bool_t duk_double_is_nan_or_zero(duk_double_t x)
DUK_LOCAL_DECL void duk__check_arguments_map_for_delete(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_propdesc *temp_desc)
DUK_INTERNAL_DECL void duk_hobject_realloc_props(duk_hthread *thr, duk_hobject *obj, duk_uint32_t new_e_size, duk_uint32_t new_a_size, duk_uint32_t new_h_size, duk_bool_t abandon_array)
DUK_INTERNAL_DECL duk_ret_t duk_bi_error_prototype_filename_getter(duk_context *ctx)
#define duk_memset(dst, val, len)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_prototype_get_shared(duk_context *ctx)
#define DUK_STRIDX_TO_ISO_STRING
#define DUK_BW_WRITE_ENSURE_U8_2(thr, bw_ctx, val1, val2)
#define DUK_PROPDESC_IS_WRITABLE(p)
#define DUK_DBG_CMD_BASICINFO
#define DUK_HOBJECT_E_SET_VALUE_GETTER(heap, h, i, v)
DUK_LOCAL double duk__acos(double x)
DUK_LOCAL duk_codepoint_t duk__inp_get_cp(duk_re_matcher_ctx *re_ctx, const duk_uint8_t **sp)
#define DUK_HOBJECT_IS_PROXY(h)
#define DUK_BW_INSERT_ENSURE_SLICE(thr, bw, dst_off, src_off, len)
#define DUK_TVAL_SET_BOOLEAN(tv, val)
DUK_LOCAL_DECL void duk__convert_to_func_template(duk_compiler_ctx *comp_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_regexp_prototype_flags(duk_context *ctx)
DUK_INTERNAL_DECL void duk_push_c_function_builtin(duk_hthread *thr, duk_c_function func, duk_int_t nargs)
#define DUK_HBUFFER_GET_DATA_PTR(heap, x)
#define DUK_HOBJECT_INCREF(thr, h)
DUK_INTERNAL_DECL duk_uint8_t * duk_bw_insert_raw_area(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t off, duk_size_t len)
DUK_INTERNAL_DECL void duk_seal_freeze_raw(duk_hthread *thr, duk_idx_t obj_idx, duk_bool_t is_freeze)
#define DUK_TVAL_STRING_IS_SYMBOL(tv)
#define DUK_STR_CONSTRUCT_ONLY
DUK_LOCAL void duk__cbor_decode_value(duk_cbor_decode_context *dec_ctx)
#define DUK_BW_WRITE_ENSURE_BYTES(thr, bw_ctx, valptr, valsz)
DUK_LOCAL duk_codepoint_t duk__hexval(duk_codepoint_t x)
#define DUK_S2N_FLAG_ALLOW_INF
#define DUK_REALLOC(heap, ptr, newsize)
DUK_INTERNAL_DECL duk_bool_t duk_is_whole_get_int32(duk_double_t x, duk_int32_t *ival)
#define DUK_HOBJECT_E_GET_VALUE_BASE(heap, h)
#define DUK_STRIDX_CONFIGURABLE
DUK_INTERNAL_DECL duk_ret_t duk_bi_typedarray_constructor(duk_context *ctx)
DUK_EXTERNAL void duk_suspend(duk_hthread *thr, duk_thread_state *state)
#define DUK_STR_INVALID_THROW
#define DUK_STR_INVALID_LVALUE
#define DUK_ACT_GET_FUNC(act)
DUK_INTERNAL const duk_c_function duk_bi_native_functions[185]
#define DUK__INTERNAL_ERROR(msg)
DUK_EXTERNAL duk_c_function duk_get_c_function(duk_hthread *thr, duk_idx_t idx)
#define DUK__EMIT_FLAG_A_IS_SOURCE
#define DUK_HSTRING_SET_BYTELEN(x, v)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_create(duk_context *ctx)
#define DUK_OP_PREINCP_RC
DUK_LOCAL void duk__comp_recursion_decrease(duk_compiler_ctx *comp_ctx)
#define DUK_STRIDX_INT_BYTECODE
DUK_LOCAL duk_double_t duk__toint32_touint32_helper(duk_double_t x, duk_bool_t is_toint32)
DUK_LOCAL void duk__reconfig_valstack_ecma_catcher(duk_hthread *thr, duk_activation *act)
#define DUK_HBUFFER_FLAG_DYNAMIC
#define DUK_TVAL_SET_LIGHTFUNC(tv, fp, flags)
DUK_EXTERNAL void duk_insert(duk_hthread *thr, duk_idx_t to_idx)
DUK_INTERNAL_DECL duk_double_t duk_js_tonumber(duk_hthread *thr, duk_tval *tv)
DUK_INTERNAL_DECL duk_idx_t duk_unpack_array_like(duk_hthread *thr, duk_idx_t idx)
#define DUK_TVAL_CHKFAST_INPLACE_FAST(tv)
DUK_INTERNAL_DECL void * duk_push_fixed_buffer_zero(duk_hthread *thr, duk_size_t len)
DUK_LOCAL duk_ret_t duk__construct_from_codepoints(duk_hthread *thr, duk_bool_t nonbmp)
DUK_LOCAL void duk__handle_yield(duk_hthread *thr, duk_hthread *resumer, duk_tval *tv_val_unstable)
#define DUK_HOBJECT_E_GET_VALUE(heap, h, i)
#define DUK_HOBJECT_SET_NAMEBINDING(h)
DUK_LOCAL_DECL void duk__check_arguments_map_for_put(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_propdesc *temp_desc, duk_bool_t throw_flag)
DUK_INTERNAL_DECL void duk_push_lightfunc_name_raw(duk_hthread *thr, duk_c_function func, duk_small_uint_t lf_flags)
DUK_LOCAL void duk__append_range_atom_matcher(duk_re_compiler_ctx *re_ctx, duk_small_uint_t re_op, const duk_uint16_t *ranges, duk_small_uint_t count)
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_escape(duk_context *ctx)
DUK_LOCAL void duk__sweep_heap(duk_heap *heap, duk_small_uint_t flags, duk_size_t *out_count_keep)
DUK_EXTERNAL duk_int_t duk_pcall_prop(duk_hthread *thr, duk_idx_t obj_idx, duk_idx_t nargs)
#define DUK_HSTRING_SET_HIDDEN(x)
#define DUK_HSTRING_HAS_STRICT_RESERVED_WORD(x)
DUK_INTERNAL_DECL void duk_pop_3_nodecref_unsafe(duk_hthread *thr)
#define DUK_HOBJECT_ASSERT_VALID(h)
#define DUK_STR_INVALID_DESCRIPTOR
#define DUK_TVAL_SET_UNDEFINED_UPDREF
#define DUK_STRIDX_INT_MAP
#define DUK_HTHREAD_STRING_EMPTY_STRING(thr)
#define DUK_HEAPHDR_FLAG_FINALIZABLE
#define DUK_STR_REGEXP_COMPILER_RECURSION_LIMIT
#define DUK_STR_NOT_NUMBER
DUK_LOCAL_DECL duk_bool_t duk__expr_is_empty(duk_compiler_ctx *comp_ctx)
DUK_LOCAL double duk__tan(double x)
DUK_EXTERNAL void duk_pop_2(duk_hthread *thr)
#define DUK_HOBJECT_SET_HSIZE(h, v)
DUK_EXTERNAL void duk_concat(duk_hthread *thr, duk_idx_t count)
#define DUK_STRIDX_CALLEE
DUK_INTERNAL DUK_COLD void duk_default_fatal_handler(void *udata, const char *msg)
DUK_LOCAL_DECL void duk__parse_var_decl(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t expr_flags, duk_regconst_t *out_reg_varbind, duk_regconst_t *out_rc_varname)
#define DUK_CAT_HAS_CATCH_ENABLED(c)
#define DUK_HTHREAD_STATE_YIELDED
DUK_INTERNAL_DECL void duk_push_this_check_object_coercible(duk_hthread *thr)
#define DUK_HOBJECT_HASHIDX_DELETED
#define DUK_ASSERT_LJSTATE_UNSET(heap)
DUK_LOCAL_DECL void duk__ivalue_toplain_raw(duk_compiler_ctx *comp_ctx, duk_ivalue *x, duk_regconst_t forced_reg)
#define DUK_CALL_FLAG_TAILCALL
DUK_LOCAL_DECL void duk__json_dec_object(duk_json_dec_ctx *js_ctx)
DUK_INTERNAL const duk_uint16_t duk_hex_enctab[256]
DUK_EXTERNAL duk_ret_t duk_syntax_error_stash(duk_hthread *thr, const char *fmt,...)
#define DUK__EMIT_FLAG_B_IS_TARGET
DUK_LOCAL_DECL void duk__emit_load_int32_noshuffle(duk_compiler_ctx *comp_ctx, duk_regconst_t reg, duk_int32_t val)
DUK_LOCAL duk_hstring * duk__internbuffer(duk_lexer_ctx *lex_ctx, duk_idx_t valstack_idx)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF void duk__vm_arith_unary_op(duk_hthread *thr, duk_uint_fast_t idx_src, duk_uint_fast_t idx_dst, duk_small_uint_fast_t opcode)
DUK_LOCAL duk_uint8_t duk__days_in_month[12]
DUK_LOCAL void duk__bi_twoexp(duk__bigint *x, duk_small_int_t y)
DUK_EXTERNAL const char * duk_push_sprintf(duk_hthread *thr, const char *fmt,...)
#define DUK_TVAL_GET_NUMBER(tv)
DUK_LOCAL duk_double_t duk__make_day(duk_double_t year, duk_double_t month, duk_double_t day)
DUK_EXTERNAL duk_ret_t duk_eval_error_stash(duk_hthread *thr, const char *fmt,...)
DUK_EXTERNAL void duk_push_true(duk_hthread *thr)
#define DUK_DBG_IB_POINTER
#define DUK_HOBJECT_GET_CLASS_NUMBER(h)
#define duk_xdef_prop_index_wec(thr, obj_idx, arr_idx)
#define DUK_UNICODE_CP_REPLACEMENT_CHARACTER
DUK_EXTERNAL void duk_push_undefined(duk_hthread *thr)
#define DUK_LFUNC_FLAGS_GET_NARGS(lf_flags)
DUK_INTERNAL_DECL void duk_set_top_unsafe(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_uint32_t duk__to_new_array_length_checked(duk_hthread *thr, duk_tval *tv)
DUK_LOCAL void duk__dragon4_scale(duk__numconv_stringify_ctx *nc_ctx)
DUK_INTERNAL_DECL duk_hobject * duk_hobject_get_varmap(duk_hthread *thr, duk_hobject *obj)
DUK_LOCAL void duk__preallocate_env_entries(duk_hthread *thr, duk_hobject *varmap, duk_hobject *env)
#define DUK__PACK_ARGS(classnum, protobidx, elemtype, elemshift, istypedarray)
#define DUK_LFUNC_FLAGS_GET_LENGTH(lf_flags)
#define DUK_LJ_TYPE_NORMAL
#define DUK__MAX_RE_DECESC_DIGITS
#define DUK_FREE_RAW(heap, ptr)
#define DUK_BIDX_NATIVE_FUNCTION_PROTOTYPE
#define DUK_HOBJECT_CLEAR_CONSTRUCTABLE(h)
static duk_uint16_t duk__date_magics[]
#define DUK__EMIT_FLAG_RESERVE_JUMPSLOT
DUK_INTERNAL_DECL void duk_insert_undefined(duk_hthread *thr, duk_idx_t idx)
#define DUK__REPLACE_TOP_A_BREAK()
DUK_LOCAL duk_bool_t duk__abandon_array_slow_check_required(duk_uint32_t arr_idx, duk_uint32_t old_size)
#define DUK_OP_GETPROP_CR
DUK_LOCAL void duk__arraybuffer_plain_slice(duk_hthread *thr, duk_hbuffer *h_val)
DUK_INTERNAL_DECL duk_ucodepoint_t duk_hstring_char_code_at_raw(duk_hthread *thr, duk_hstring *h, duk_uint_t pos, duk_bool_t surrogate_aware)
DUK_LOCAL duk_int_t duk__hobject_alloc_entry_checked(duk_hthread *thr, duk_hobject *obj, duk_hstring *key)
DUK_LOCAL double duk__cbrt(double x)
DUK_LOCAL_DECL void duk__json_enc_fastint_tval(duk_json_enc_ctx *js_ctx, duk_tval *tv)
#define DUK_OP_PUTPROP_CR
DUK_INTERNAL_DECL void duk_push_lightfunc_name(duk_hthread *thr, duk_tval *tv)
#define DUK_ERROR_RANGE_INVALID_LENGTH(thr)
DUK_EXTERNAL duk_uint_t duk_opt_uint(duk_hthread *thr, duk_idx_t idx, duk_uint_t def_value)
DUK_INTERNAL_DECL duk_codepoint_t duk_unicode_re_canonicalize_char(duk_hthread *thr, duk_codepoint_t cp)
#define DUK_CALL_FLAG_DIRECT_EVAL
#define DUK_TVAL_GET_HEAPHDR(tv)
#define DUK_HTHREAD_STRING_HEX(thr)
#define DUK_TVAL_DECREF_NORZ(thr, tv)
DUK_LOCAL_DECL duk_bool_t duk__handle_put_array_length_smaller(duk_hthread *thr, duk_hobject *obj, duk_uint32_t old_len, duk_uint32_t new_len, duk_bool_t force_flag, duk_uint32_t *out_result_len)
#define DUK_STRIDX_VALUE_OF
DUK_EXTERNAL duk_bool_t duk_put_global_lstring(duk_hthread *thr, const char *key, duk_size_t key_len)
DUK_LOCAL void duk__append_u16_list(duk_re_compiler_ctx *re_ctx, const duk_uint16_t *values, duk_uint32_t count)
#define DUK_STRIDX_END_RESERVED
DUK_INTERNAL_DECL duk_bool_t duk_double_same_sign(duk_double_t x, duk_double_t y)
#define DUK_RAW_WRITEINC_XUTF8(ptr, val)
DUK_LOCAL void duk__set_parts_from_args(duk_hthread *thr, duk_double_t *dparts, duk_idx_t nargs)
DUK_LOCAL duk_hobject * duk__resolve_target_func_and_this_binding(duk_hthread *thr, duk_idx_t idx_func, duk_small_uint_t *call_flags)
#define DUK__READABLE_STRING_MAXCHARS
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_prototype_tostring_shared(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_prototype_to_string(duk_context *ctx)
#define DUK_STRIDX_LC_OBJECT
#define DUK_CALL_FLAG_CONSTRUCT
#define DUK__FUNC_FLAG_USE_PREVTOKEN
DUK_INTERNAL_DECL void duk_heap_insert_into_heap_allocated(duk_heap *heap, duk_heaphdr *hdr)
DUK_LOCAL void duk__decref_tvals_norz(duk_hthread *thr, duk_tval *tv, duk_idx_t count)
DUK_LOCAL_DECL void duk__settemp_checkmax(duk_compiler_ctx *comp_ctx, duk_regconst_t temp_next)
#define DUK_ASC_UNDERSCORE
#define DUK_BC_CALL_FLAG_CALLED_AS_EVAL
#define DUK_DBG_CMD_GETHEAPOBJINFO
DUK_INTERNAL_DECL duk_bool_t duk_unicode_is_utf8_compatible(const duk_uint8_t *buf, duk_size_t len)
#define DUK_HOBJECT_E_GET_FLAGS(heap, h, i)
#define DUK_TVAL_SET_I32_UPDREF
DUK_LOCAL DUK_EXEC_NOINLINE_PERF void duk__handle_op_initenum(duk_hthread *thr, duk_uint_fast32_t ins)
#define DUK_LFUNC_MAGIC_MAX
#define DUK_HOBJECT_HAS_NATFUNC(h)
DUK_LOCAL void duk__clear_finalize_list_flags(duk_heap *heap)
struct duk_strtab_entry duk_strtab_entry
DUK_EXTERNAL void duk_push_new_target(duk_hthread *thr)
#define DUK_RETOK_ASSERT_END
DUK_LOCAL void duk__dragon4_prepare(duk__numconv_stringify_ctx *nc_ctx)
#define DUK_STRIDX_TO_JSON
#define DUK_REOP_ASSERT_NOT_WORD_BOUNDARY
DUK_LOCAL DUK_ALWAYS_INLINE void duk__call_c_recursion_limit_check(duk_hthread *thr)
#define DUK_RAW_READ_U16_BE(ptr)
DUK_INTERNAL_DECL void duk_hthread_catcher_free(duk_hthread *thr, duk_catcher *cat)
#define DUK_RETOK_ATOM_BACKREFERENCE
DUK_INTERNAL_DECL void duk_heap_strtable_unlink_prev(duk_heap *heap, duk_hstring *h, duk_hstring *prev)
DUK_INTERNAL_DECL duk_ret_t duk_bi_native_function_length(duk_context *ctx)
DUK_EXTERNAL duk_uint16_t duk_to_uint16(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_hobject * duk_require_hobject(duk_hthread *thr, duk_idx_t idx)
#define DUK_HTHREAD_DECREF_NORZ(thr, h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_constructor(duk_context *ctx)
DUK_INTERNAL const duk_uint8_t duk_unicode_xutf8_markers[7]
#define DUK_CAT_CLEAR_LEXENV_ACTIVE(c)
#define DUK_STRIDX_PROTOTYPE
DUK_EXTERNAL duk_bool_t duk_get_prop(duk_hthread *thr, duk_idx_t obj_idx)
#define DUK_HOBJECT_E_GET_VALUE_GETTER(heap, h, i)
DUK_INTERNAL_DECL void duk_heap_remove_from_heap_allocated(duk_heap *heap, duk_heaphdr *hdr)
DUK_LOCAL_DECL duk_regconst_t duk__ivalue_toregconst(duk_compiler_ctx *comp_ctx, duk_ivalue *x)
DUK_INTERNAL_DECL void duk_heap_strcache_string_remove(duk_heap *heap, duk_hstring *h)
#define DUK_OP_DECLVAR_CC
#define DUK_ASSERT_DOUBLE_IS_NORMALIZED(dval)
DUK_LOCAL_DECL void duk__json_enc_pointer(duk_json_enc_ctx *js_ctx, void *ptr)
DUK_INTERNAL_DECL void * duk_hthread_get_valstack_ptr(duk_heap *heap, void *ud)
#define DUK_JSON_FLAG_EXT_COMPATIBLE
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_get_own_property_descriptor(duk_context *ctx)
#define DUK_HOBJECT_CLEAR_EXTENSIBLE(h)
#define DUK_HEAPHDR_DECREF_ALLOWNULL(thr, h)
DUK_INTERNAL_DECL void duk_bw_insert_raw_bytes(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t dst_off, const duk_uint8_t *buf, duk_size_t len)
#define DUK_ASSERT_LJSTATE_SET(heap)
#define DUK__GETPROPC_BODY(barg, carg)
DUK_LOCAL_DECL void duk__parse_func_formals(duk_compiler_ctx *comp_ctx)
DUK_INTERNAL_DECL duk_harray * duk_harray_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
DUK_LOCAL duk_double_t duk__to_int_uint_helper(duk_hthread *thr, duk_idx_t idx, duk__toint_coercer coerce_func)
#define DUK__LOOKUP(lex_ctx, idx)
DUK_LOCAL duk_bool_t duk__proxy_check_prop(duk_hthread *thr, duk_hobject *obj, duk_small_uint_t stridx_trap, duk_tval *tv_key, duk_hobject **out_target)
#define DUK__RETHAND_RESTART
DUK_INTERNAL_DECL void duk_util_tinyrandom_prepare_seed(duk_hthread *thr)
#define DUK_ERROR_RANGE_INDEX(thr, idx)
#define DUK_BIDX_RANGE_ERROR_PROTOTYPE
#define DUK_HOBJECT_IS_BUFOBJ(h)
DUK_LOCAL_DECL void duk__parse_switch_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_int_t pc_label_site)
DUK_EXTERNAL duk_bool_t duk_is_function(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_getprototype_shared(duk_context *ctx)
#define DUK_HEAPHDR_NEEDS_REFCOUNT_UPDATE(h)
DUK_EXTERNAL void duk_compact(duk_hthread *thr, duk_idx_t obj_idx)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF void duk__prepost_incdec_var_helper(duk_hthread *thr, duk_small_uint_t idx_dst, duk_tval *tv_id, duk_small_uint_t op, duk_small_uint_t is_strict)
#define DUK__LOOKUP_INDIRECT(idx)
DUK_INTERNAL_DECL duk_float_t duk_double_to_float_t(duk_double_t x)
#define DUK_S2N_FLAG_TRIM_WHITE
DUK_LOCAL int duk__bi_compare(duk__bigint *x, duk__bigint *y)
#define DUK_OP_GETPROP_RC
DUK_INTERNAL_DECL void duk_bi_json_stringify_helper(duk_hthread *thr, duk_idx_t idx_value, duk_idx_t idx_replacer, duk_idx_t idx_space, duk_small_uint_t flags)
#define DUK_PAUSE_FLAG_CAUGHT_ERROR
#define DUK_BW_PUSH_AS_STRING(thr, bw_ctx)
#define DUK_HBUFOBJ_ELEM_FLOAT32
#define DUK__BUFOBJ_FLAG_PROMOTE
#define DUK_CAT_TYPE_LABEL
DUK_LOCAL void duk__free_finalize_list(duk_heap *heap)
DUK_EXTERNAL const char * duk_safe_to_lstring(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_len)
DUK_LOCAL void duk__create_escaped_source(duk_hthread *thr, int idx_pattern)
#define DUK_HSTRING_FLAG_SYMBOL
DUK_LOCAL duk_bool_t duk__putprop_fastpath_bufobj_tval(duk_hthread *thr, duk_hobject *obj, duk_tval *tv_key, duk_tval *tv_val)
DUK_LOCAL void duk__cbor_encode_error(duk_cbor_encode_context *enc_ctx)
DUK_INTERNAL_DECL void duk_free_hbuffer(duk_heap *heap, duk_hbuffer *h)
#define DUK_STR_NOT_BUFFER
DUK_INTERNAL_DECL void duk_raw_write_double_be(duk_uint8_t *p, duk_double_t val)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_constructor_assign(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_decode_uri(duk_context *ctx)
DUK_INTERNAL_DECL duk_hcompfunc * duk_known_hcompfunc(duk_hthread *thr, duk_idx_t idx)
#define DUK_DOUBLE_LOG10E
#define DUK_STRIDX_COMPILE
#define DUK_ERROR_RAW_FMT3(thr, file, line, err, fmt, arg1, arg2, arg3)
DUK_INTERNAL_DECL duk_ret_t duk_bi_json_object_stringify(duk_context *ctx)
DUK_LOCAL_DECL void duk__ivalue_plain_fromstack(duk_compiler_ctx *comp_ctx, duk_ivalue *x)
#define DUK__PROP_TYPE_DOUBLE
DUK_INTERNAL_DECL duk_uint8_t * duk_bw_insert_ensure_area(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t off, duk_size_t len)
DUK_EXTERNAL const char * duk_push_string(duk_hthread *thr, const char *str)
#define DUK_HEAP_SWITCH_THREAD(heap, newthr)
#define DUK_DBG_PROPFLAG_HIDDEN
DUK_LOCAL duk_size_t duk__heap_free_activation_freelist(duk_heap *heap)
DUK_LOCAL DUK_INLINE void duk__refcount_refzero_hstring(duk_heap *heap, duk_hstring *str)
DUK_LOCAL duk_small_int_t duk__uni_range_match(const duk_uint8_t *unitab, duk_size_t unilen, duk_codepoint_t cp)
DUK_LOCAL duk_uint8_t * duk__dump_hstring_raw(duk_uint8_t *p, duk_hstring *h)
DUK_LOCAL const duk_uint8_t duk__encode_uriunescaped_table[16]
DUK_INTERNAL_DECL duk_hobject * duk_get_hobject(duk_hthread *thr, duk_idx_t idx)
#define DUK_HTHREAD_STRING_LENGTH(thr)
DUK_LOCAL_DECL void duk__mark_tvals(duk_heap *heap, duk_tval *tv, duk_idx_t count)
#define DUK_BW_WRITE_ENSURE_CSTRING(thr, bw_ctx, val)
DUK_LOCAL duk_uint32_t duk__cbor_decode_aival_uint32(duk_cbor_decode_context *dec_ctx, duk_uint8_t ib)
DUK_LOCAL DUK_NOINLINE void duk__cbor_encode_ensure_slowpath(duk_cbor_encode_context *enc_ctx, duk_size_t len)
#define DUK_HOBJECT_GET_ESIZE(h)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_get_own_propdesc(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_propdesc *out_desc, duk_small_uint_t flags)
#define DUK_HBUFFER_SET_SIZE(x, v)
#define DUK_HEAPHDR_HAS_FINALIZABLE(h)
#define DUK_TVAL_SET_UNDEFINED(tv)
#define DUK_STR_NOT_UNDEFINED
#define DUK_STRIDX_UC_ERROR
DUK_LOCAL DUK_NOINLINE_PERF DUK_COLD void * duk__heap_mem_realloc_slowpath(duk_heap *heap, void *ptr, duk_size_t newsize)
DUK_LOCAL void duk__push_stash(duk_hthread *thr)
#define DUK_STR_UNEXPECTED_TYPE
DUK_INTERNAL_DECL duk_bool_t duk_has_prop_stridx(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t stridx)
#define DUK_PROPDESC_IS_CONFIGURABLE(p)
DUK_LOCAL duk_size_t duk__dragon4_format_uint32(duk_uint8_t *buf, duk_uint32_t x, duk_small_int_t radix)
DUK_INTERNAL_DECL const char * duk_require_string_notsymbol(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL void duk__compact_objects(duk_heap *heap)
#define DUK_RETOK_ASSERT_START_NEG_LOOKAHEAD
DUK_INTERNAL DUK_COLD void duk_err_error_internal(duk_hthread *thr, const char *filename, duk_int_t linenumber)
#define DUK_ERROR_ALLOC_FAILED(thr)
#define DUK_HEAPHDR_GET_NEXT(heap, h)
#define DUK_STR_NOT_COMPFUNC
#define DUK_RE_MAX_ATOM_COPIES
#define DUK_HOBJECT_SET_SPECIAL_CALL(h)
#define DUK_HSTRING_FLAG_ARRIDX
#define duk_memmove(dst, src, len)
DUK_LOCAL duk_uint16_t duk__cbor_decode_read_u16(duk_cbor_decode_context *dec_ctx)
DUK_EXTERNAL duk_idx_t duk_normalize_index(duk_hthread *thr, duk_idx_t idx)
#define DUK__BITPACK_SWITCH1
#define DUK_STR_HEX_DECODE_FAILED
#define DUK_HTHREAD_STATE_TERMINATED
DUK_EXTERNAL void duk_dup(duk_hthread *thr, duk_idx_t from_idx)
#define DUK_ERROR_RANGE_PUSH_BEYOND(thr)
#define DUK__NEQ_BODY(barg, carg)
DUK_INTERNAL_DECL void duk_remove_n_unsafe(duk_hthread *thr, duk_idx_t idx, duk_idx_t count)
#define DUK_TVAL_GET_FASTINT(tv)
#define DUK_JSON_DEC_REQSTACK
const duk_uint8_t duk_unicode_caseconv_lc[706]
#define DUK_HSTRING_CLEAR_PINNED_LITERAL(x)
#define DUK_HBUFFER_DYNAMIC_SET_SIZE(x, v)
DUK_LOCAL duk_hbufobj * duk__autospawn_arraybuffer(duk_hthread *thr, duk_hbuffer *h_buf)
DUK_INTERNAL_DECL void duk_pop_3_unsafe(duk_hthread *thr)
DUK_LOCAL double duk__cos(double x)
#define DUK_HOBJECT_HAS_BOUNDFUNC(h)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_is_letter(duk_codepoint_t cp)
#define DUK_HOBJECT_HAS_EXTENSIBLE(h)
DUK_INTERNAL_DECL void duk_push_lightfunc_tostring(duk_hthread *thr, duk_tval *tv)
#define duk_get_prop_stridx_short(thr, obj_idx, stridx)
DUK_LOCAL_DECL void duk__copy_ivalue(duk_compiler_ctx *comp_ctx, duk_ivalue *src, duk_ivalue *dst)
#define DUK_STRIDX_MULTILINE
DUK_INTERNAL_DECL duk_hnatfunc * duk_require_hnatfunc(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_uint32_t duk__get_default_h_size(duk_uint32_t e_size)
#define DUK_HTHREAD_STRING_GET(thr)
#define DUK_HBUFFER_SET_DYNAMIC(x)
DUK_EXTERNAL duk_idx_t duk_push_error_object_stash(duk_hthread *thr, duk_errcode_t err_code, const char *fmt,...)
DUK_LOCAL duk_uint8_t * duk__dump_varmap(duk_hthread *thr, duk_uint8_t *p, duk_bufwriter_ctx *bw_ctx, duk_hobject *func)
#define DUK_DBLUNION_IS_NAN(u)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF void duk__vm_arith_binary_op(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y, duk_uint_fast_t idx_z, duk_small_uint_fast_t opcode)
DUK_LOCAL void duk__cbor_encode_req_stack(duk_cbor_encode_context *enc_ctx)
#define DUK_HOBJECT_H_GET_BASE(heap, h)
DUK_LOCAL duk_small_uint_t duk__handle_longjmp(duk_hthread *thr, duk_activation *entry_act, volatile duk_bool_t *out_delayed_catch_setup)
DUK_INTERNAL_DECL void duk_be_finish(duk_bitencoder_ctx *ctx)
#define DUK_S2N_FLAG_ALLOW_LEADING_ZERO
#define DUK_DBG_ERR_APPLICATION
#define DUK_HOBJECT_CLASS_STRING
#define DUK_HBUFFER_HAS_EXTERNAL(x)
DUK_LOCAL void duk__cbor_encode_sizet_uint32_check(duk_cbor_encode_context *enc_ctx, duk_size_t len)
#define DUK_GET_THIS_TVAL_PTR(thr)
DUK_EXTERNAL duk_bool_t duk_put_prop_lstring(duk_hthread *thr, duk_idx_t obj_idx, const char *key, duk_size_t key_len)
#define DUK_HEAP_MARK_AND_SWEEP_TRIGGER_MULT
DUK_EXTERNAL void duk_put_number_list(duk_hthread *thr, duk_idx_t obj_idx, const duk_number_list_entry *numbers)
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_eval(duk_context *ctx)
DUK_INTERNAL_DECL duk_uint16_t duk_raw_readinc_u16_be(const duk_uint8_t **p)
DUK_LOCAL duk_int_t duk__handle_call_raw(duk_hthread *thr, duk_idx_t idx_func, duk_small_uint_t call_flags)
DUK_EXTERNAL duk_bool_t duk_is_buffer(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL void duk_to_object(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL void duk_raw_writeinc_xutf8(duk_uint8_t **p, duk_ucodepoint_t val)
DUK_LOCAL const duk_uint8_t duk__base64_enctab_fast[64]
#define DUK_STR_UNTERMINATED_COMMENT
DUK_INTERNAL duk_uint8_t duk_class_number_to_stridx[32]
#define DUK_HBUFFER_HAS_DYNAMIC(x)
#define DUK_HOBJECT_CLASS_ARRAYBUFFER
#define DUK_PAUSE_FLAG_FUNC_ENTRY
#define DUK_GETDESC_FLAG_IGNORE_PROTOLOOP
DUK_LOCAL void duk__emit_u16_direct_ranges(duk_lexer_ctx *lex_ctx, duk_re_range_callback gen_range, void *userdata, const duk_uint16_t *ranges, duk_small_int_t num)
#define DUK__BITPACK_LOOKUP1
#define DUK__UNEMIT_1(js_ctx)
#define DUK_STR_NOT_POINTER
#define DUK__UPDATE_RND(rnd)
DUK_LOCAL_DECL duk_ret_t duk__set_this_timeval_from_dparts(duk_hthread *thr, duk_double_t *dparts, duk_small_uint_t flags)
#define DUK_CAT_CLEAR_FINALLY_ENABLED(c)
DUK_EXTERNAL duk_c_function duk_opt_c_function(duk_hthread *thr, duk_idx_t idx, duk_c_function def_value)
#define DUK_HBUFOBJ_ELEM_UINT8
#define DUK_HOBJECT_PROHIBITS_FASTREFS(h)
DUK_INTERNAL DUK_COLD void duk_err_range(duk_hthread *thr, const char *filename, duk_int_t linenumber, const char *message)
DUK_INTERNAL_DECL void duk_heap_mem_free(duk_heap *heap, void *ptr)
#define DUK_OP_GETPROP_CC
DUK_INTERNAL_DECL duk_ret_t duk_bi_regexp_prototype_shared_getter(duk_context *ctx)
DUK_LOCAL duk_size_t duk__heap_free_catcher_freelist(duk_heap *heap)
#define DUK_HOBJECT_HAS_STRICT(h)
DUK_EXTERNAL duk_bool_t duk_put_prop(duk_hthread *thr, duk_idx_t obj_idx)
DUK_EXTERNAL duk_bool_t duk_require_boolean(duk_hthread *thr, duk_idx_t idx)
#define DUK__RE_INITIAL_BUFSIZE
#define DUK_ERRCODE_FLAG_NOBLAME_FILELINE
#define DUK_HTHREAD_THIS_PTR(thr)
#define DUK_HTHREAD_STRING_INT_MAP(thr)
#define DUK_STR_INVALID_RETURN
double(* duk__one_arg_func)(double)
#define DUK_S2N_FLAG_ALLOW_EXP
#define DUK_DBG_CMD_DETACH
#define DUK_HOBJECT_CMASK_ARRAY
DUK_INTERNAL_DECL duk_uint32_t duk_bd_decode(duk_bitdecoder_ctx *ctx, duk_small_int_t bits)
DUK_LOCAL DUK_COLD DUK_NOINLINE duk_bool_t duk__valstack_grow(duk_hthread *thr, duk_size_t min_bytes, duk_bool_t throw_on_error)
DUK_EXTERNAL void duk_cbor_encode(duk_hthread *thr, duk_idx_t idx, duk_uint_t encode_flags)
#define DUK_STR_INVALID_NUMBER_LITERAL
DUK_LOCAL void duk__cbor_encode_lightfunc(duk_cbor_encode_context *enc_ctx)
#define DUK_BW_ENSURE_GETPTR(thr, bw_ctx, sz)
DUK_EXTERNAL void duk_pop_n(duk_hthread *thr, duk_idx_t count)
#define DUK_BC_LDINT_BIAS
DUK_INTERNAL_DECL duk_idx_t duk_get_top_require_min(duk_hthread *thr, duk_idx_t min_top)
DUK_INTERNAL_DECL duk_tval * duk_get_tval(duk_hthread *thr, duk_idx_t idx)
#define DUK_HOBJECT_CLASS_DATAVIEW
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_indexof_shared(duk_context *ctx)
#define DUK_STRIDX_INT_SOURCE
DUK_LOCAL void duk__push_double(duk_hthread *thr, duk_bitdecoder_ctx *bd)
#define duk_push_uarridx(thr, val)
#define DUK_HOBJECT_P_ALLOC_SIZE(h)
#define DUK_HBUFFER_DYNAMIC_SET_DATA_PTR_NULL(heap, x)
DUK_LOCAL_DECL duk_double_t duk__push_this_get_timeval_tzoffset(duk_hthread *thr, duk_small_uint_t flags, duk_int_t *out_tzoffset)
struct duk_lexer_codepoint duk_lexer_codepoint
DUK_INTERNAL_DECL void duk_lexer_parse_re_ranges(duk_lexer_ctx *lex_ctx, duk_re_range_callback gen_range, void *userdata)
#define DUK_STR_DUPLICATE_LABEL
DUK_LOCAL duk_ret_t duk__array_push_fastpath(duk_hthread *thr, duk_harray *h_arr)
DUK_LOCAL duk_uint8_t * duk__dump_uint32_prop(duk_hthread *thr, duk_uint8_t *p, duk_bufwriter_ctx *bw_ctx, duk_hobject *func, duk_small_uint_t stridx, duk_uint32_t def_value)
#define DUK_DBG_IB_REQUEST
DUK_INTERNAL_DECL duk_bool_t duk_xget_owndataprop_stridx(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t stridx)
DUK_EXTERNAL void duk_base64_decode(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL_DECL void duk__expr(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_small_uint_t rbp_flags)
DUK_EXTERNAL const char * duk_safe_to_stacktrace(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL void duk_regexp_match_force_global(duk_hthread *thr)
DUK_INTERNAL_DECL duk_bool_t duk_valstack_grow_check_nothrow(duk_hthread *thr, duk_size_t min_bytes)
#define DUK_STR_INVALID_OBJECT_LITERAL
DUK_LOCAL duk_bool_t duk__obj_flag_any_default_false(duk_hthread *thr, duk_idx_t idx, duk_uint_t flag_mask)
#define DUK_STR_UNEXPECTED_CLOSING_PAREN
DUK_INTERNAL_DECL duk_hobject * duk_hobject_alloc(duk_hthread *thr, duk_uint_t hobject_flags)
#define DUK_HOBJECT_HAS_NOTAIL(h)
#define DUK_ERROR_TYPE_INVALID_TRAP_RESULT(thr)
DUK_EXTERNAL void duk_enum(duk_hthread *thr, duk_idx_t obj_idx, duk_uint_t enum_flags)
DUK_INTERNAL_DECL void duk_unicode_case_convert_string(duk_hthread *thr, duk_bool_t uppercase)
DUK_LOCAL_DECL duk_uint8_t duk__json_dec_get_nonwhite(duk_json_dec_ctx *js_ctx)
DUK_INTERNAL_DECL duk_tval * duk_hobject_find_entry_tval_ptr(duk_heap *heap, duk_hobject *obj, duk_hstring *key)
DUK_LOCAL DUK_ALWAYS_INLINE duk_bool_t duk__get_boolean_raw(duk_hthread *thr, duk_idx_t idx, duk_bool_t def_value)
DUK_LOCAL duk_bool_t duk__init_heap_strings(duk_heap *heap)
DUK_INTERNAL_DECL void duk_valstack_grow_check_throw(duk_hthread *thr, duk_size_t min_bytes)
DUK_LOCAL_DECL duk_idx_t duk__push_c_function_raw(duk_hthread *thr, duk_c_function func, duk_idx_t nargs, duk_uint_t flags, duk_small_uint_t proto_bidx)
DUK_INTERNAL_DECL void duk_hobject_set_prototype_updref(duk_hthread *thr, duk_hobject *h, duk_hobject *p)
#define DUK_HOBJECT_SET_PROTOTYPE_INIT_INCREF(thr, h, proto)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF duk_double_t duk__compute_exp(duk_double_t d1, duk_double_t d2)
#define DUK_HOBJECT_SET_NEWENV(h)
DUK_INTERNAL_DECL void duk_valstack_shrink_check_nothrow(duk_hthread *thr, duk_bool_t snug)
DUK_INTERNAL_DECL void duk_heap_remove_from_finalize_list(duk_heap *heap, duk_heaphdr *hdr)
#define DUK__INCREF_SHARED()
DUK_LOCAL duk_bool_t duk__putprop_shallow_fastpath_array_tval(duk_hthread *thr, duk_hobject *obj, duk_tval *tv_key, duk_tval *tv_val)
#define DUK_HOBJECT_SET_CLASS_NUMBER(h, v)
#define DUK_HOBJECT_E_SLOT_SET_ACCESSOR(heap, h, i)
DUK_EXTERNAL duk_bool_t duk_get_global_literal_raw(duk_hthread *thr, const char *key, duk_size_t key_len)
DUK_INTERNAL_DECL duk_ret_t duk_bi_date_prototype_set_time(duk_context *ctx)
#define DUK_RAW_READ_U32_BE(ptr)
DUK_LOCAL_DECL duk_regconst_t duk__lookup_active_register_binding(duk_compiler_ctx *comp_ctx)
DUK_LOCAL void duk__resolve_offset_opt_length(duk_hthread *thr, duk_hbufobj *h_bufarg, duk_idx_t idx_offset, duk_idx_t idx_length, duk_uint_t *out_offset, duk_uint_t *out_length, duk_bool_t throw_flag)
#define DUK_HEAP_DBG_RATELIMIT_MILLISECS
#define DUK_OP_GETPROPC_CC
DUK_LOCAL duk_bool_t duk__is_hex_digit(duk_codepoint_t x)
#define DUK_STR_REGEXP_EXECUTOR_RECURSION_LIMIT
const duk_uint8_t duk_unicode_re_canon_bitmap[256]
#define DUK__EMIT_FLAG_C_IS_TARGET
DUK_LOCAL duk_uint8_t * duk__utf8_emit_repl(duk_uint8_t *ptr)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_find_entry(duk_heap *heap, duk_hobject *obj, duk_hstring *key, duk_int_t *e_idx, duk_int_t *h_idx)
DUK_INTERNAL_DECL duk_bool_t duk_put_prop_stridx_short_raw(duk_hthread *thr, duk_uint_t packed_args)
DUK_INTERNAL_DECL void duk_bw_init_pushbuf(duk_hthread *thr, duk_bufwriter_ctx *bw_ctx, duk_size_t buf_size)
#define DUK_JSON_FLAG_ASCII_ONLY
#define DUK_HOBJECT_DECREF_NORZ(thr, h)
#define DUK_HBUFOBJ_ELEM_MAX
DUK_LOCAL void duk__fill_lexer_buffer(duk_lexer_ctx *lex_ctx, duk_small_uint_t start_offset_bytes)
#define DUK_REOP_SQMINIMAL
#define DUK_STR_UNTERMINATED_REGEXP
#define DUK_STRIDX_NEWLINE_4SPACE
#define DUK__MKESC(nybbles, esc1, esc2)
DUK_INTERNAL_DECL void duk_dup_m2(duk_hthread *thr)
DUK_INTERNAL_DECL duk_double_t duk_time_get_ecmascript_time_nofrac(duk_hthread *thr)
DUK_INTERNAL_DECL void duk_heap_insert_into_finalize_list(duk_heap *heap, duk_heaphdr *hdr)
DUK_INTERNAL_DECL void duk_js_execute_bytecode(duk_hthread *exec_thr)
#define DUK_RAW_READINC_U16_BE(ptr)
DUK_LOCAL duk_uint32_t duk__insert_u32(duk_re_compiler_ctx *re_ctx, duk_uint32_t offset, duk_uint32_t x)
#define DUK_EQUALS_FLAG_STRICT
DUK_INTERNAL_DECL void duk_regexp_create_instance(duk_hthread *thr)
#define DUK_HSTRING_GET_ARRIDX_SLOW(h)
DUK_EXTERNAL void duk_set_top(duk_hthread *thr, duk_idx_t idx)
#define DUK_TVAL_GET_DOUBLE(tv)
#define DUK_BIDX_DATE_PROTOTYPE
DUK_INTERNAL_DECL duk_hstring * duk_heap_strtable_intern_checked(duk_hthread *thr, const duk_uint8_t *str, duk_uint32_t len)
DUK_LOCAL_DECL void duk__json_enc_double(duk_json_enc_ctx *js_ctx)
DUK_EXTERNAL duk_bool_t duk_put_prop_heapptr(duk_hthread *thr, duk_idx_t obj_idx, void *ptr)
DUK_LOCAL void duk__err_augment_user(duk_hthread *thr, duk_small_uint_t stridx_cb)
#define DUK_STR_ALLOC_FAILED
DUK_LOCAL duk_bool_t duk__hstring_is_eval_or_arguments_in_strict_mode(duk_compiler_ctx *comp_ctx, duk_hstring *h)
DUK_EXTERNAL void duk_join(duk_hthread *thr, duk_idx_t count)
DUK_LOCAL void duk__utf8_encode_char(void *udata, duk_codepoint_t codepoint)
#define DUK_HOBJECT_INCREF_ALLOWNULL(thr, h)
DUK_INTERNAL_DECL duk_double_t duk_bi_date_get_timeval_from_dparts(duk_double_t *dparts, duk_small_uint_t flags)
#define DUK__PROP_TYPE_BOOLEAN_FALSE
DUK_INTERNAL const duk_int8_t duk_is_idchar_tab[128]
#define DUK_HCOMPFUNC_GET_CODE_END(heap, h)
#define DUK__PROP_TYPE_BOOLEAN_TRUE
DUK_INTERNAL_DECL duk_uint_t duk_double_to_uint_t(duk_double_t x)
DUK_LOCAL_DECL duk_bool_t duk__json_enc_allow_into_proplist(duk_tval *tv)
DUK_EXTERNAL duk_int_t duk_get_int(duk_hthread *thr, duk_idx_t idx)
#define DUK_HTHREAD_STRING_CALLER(thr)
#define DUK_HTHREAD_STRING_JC(thr)
DUK_EXTERNAL duk_double_t duk_get_number(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL DUK_EXEC_ALWAYS_INLINE_PERF void duk__vm_bitwise_not(duk_hthread *thr, duk_uint_fast_t idx_src, duk_uint_fast_t idx_dst)
#define DUK__DRAGON4_OUTPUT_PREINC(nc_ctx, preinc_idx, x)
#define DUK__VALSTACK_SPACE
DUK_INTERNAL_DECL duk_ret_t duk_bi_duktape_object_info(duk_context *ctx)
#define DUK_HSTRING_FLAG_HIDDEN
#define DUK_TVAL_SET_I32(tv, val)
DUK_INTERNAL_DECL duk_harray * duk_hobject_get_formals(duk_hthread *thr, duk_hobject *obj)
#define DUK__OUTPUT_TYPE_TRACEBACK
DUK_INTERNAL_DECL duk_hobject * duk_push_object_helper_proto(duk_hthread *thr, duk_uint_t hobject_flags_and_class, duk_hobject *proto)
DUK_INTERNAL_DECL duk_ret_t duk_bi_thread_yield(duk_context *ctx)
DUK_INTERNAL_DECL duk_heap * duk_heap_alloc(duk_alloc_function alloc_func, duk_realloc_function realloc_func, duk_free_function free_func, void *heap_udata, duk_fatal_function fatal_func)
DUK_LOCAL DUK_ALWAYS_INLINE void duk__pop_2_unsafe_raw(duk_hthread *thr)
#define DUK__RND_BIT(rnd)
DUK_INTERNAL_DECL duk_int_t duk_to_int_clamped_raw(duk_hthread *thr, duk_idx_t idx, duk_int_t minval, duk_int_t maxval, duk_bool_t *out_clamped)
#define DUK__PM_MILLISECOND
#define DUK_BIDX_INT16ARRAY_PROTOTYPE
#define DUK_RETOK_ASSERT_NOT_WORD_BOUNDARY
#define DUK__REGP_BC(ins)
#define DUK_HOBJECT_E_SLOT_IS_CONFIGURABLE(heap, h, i)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_prototype_lookupaccessor(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_number_prototype_to_fixed(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_trim(duk_context *ctx)
#define DUK_OP_DELPROP_RC
DUK_EXTERNAL void * duk_to_pointer(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_global_object_is_nan(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_function_prototype_bind(duk_context *ctx)
DUK_LOCAL void duk__compute_a_stats(duk_hthread *thr, duk_hobject *obj, duk_uint32_t *out_used, duk_uint32_t *out_min_size)
DUK_INTERNAL_DECL duk_uint8_t duk_to_uint8clamped(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL duk_double_t duk__timeclip(duk_double_t x)
#define DUK_TVAL_SET_STRING(tv, hptr)
#define DUK_PROPDESC_FLAGS_W
DUK_LOCAL DUK_INLINE duk_tval * duk__obtain_arridx_slot(duk_hthread *thr, duk_uint32_t arr_idx, duk_hobject *obj)
#define DUK_OP_GETPROPC_RC
DUK_INTERNAL_DECL duk_ucodepoint_t duk_unicode_decode_xutf8_checked(duk_hthread *thr, const duk_uint8_t **ptr, const duk_uint8_t *ptr_start, const duk_uint8_t *ptr_end)
DUK_LOCAL_DECL duk_uint_fast32_t duk__json_dec_decode_hex_escape(duk_json_dec_ctx *js_ctx, duk_small_uint_t n)
DUK_EXTERNAL duk_bool_t duk_has_prop_index(duk_hthread *thr, duk_idx_t obj_idx, duk_uarridx_t arr_idx)
#define DUK_STR_BASE64_DECODE_FAILED
DUK_INTERNAL_DECL duk_bool_t duk_hobject_enumerator_next(duk_hthread *thr, duk_bool_t get_value)
DUK_EXTERNAL void duk_debugger_attach(duk_hthread *thr, duk_debug_read_function read_cb, duk_debug_write_function write_cb, duk_debug_peek_function peek_cb, duk_debug_read_flush_function read_flush_cb, duk_debug_write_flush_function write_flush_cb, duk_debug_request_function request_cb, duk_debug_detached_function detached_cb, void *udata)
#define DUK_STRIDX_CALLER
DUK_EXTERNAL duk_int32_t duk_to_int32(duk_hthread *thr, duk_idx_t idx)
DUK_LOCAL const duk_uint8_t duk__re_range_lookup2[3]
#define DUK__GET_STRTABLE(heap)
DUK_INTERNAL_DECL duk_ret_t duk_bi_number_prototype_to_locale_string(duk_context *ctx)
#define DUK__EMIT_1(js_ctx, ch)
DUK_INTERNAL_DECL void duk_raw_writeinc_u32_be(duk_uint8_t **p, duk_uint32_t val)
DUK_LOCAL duk_uint32_t duk__cbor_double_to_uint32(double d)
#define DUK_STR_INVALID_NEWTARGET
#define DUK_ERROR_FMT1(thr, err, fmt, arg1)
DUK_EXTERNAL void duk_push_thread_stash(duk_hthread *thr, duk_hthread *target_thr)
DUK_LOCAL double duk__sqrt(double x)
#define DUK_CALL_FLAG_DEFAULT_INSTANCE_UPDATED
DUK_INTERNAL_DECL duk_bool_t duk_hobject_putprop(duk_hthread *thr, duk_tval *tv_obj, duk_tval *tv_key, duk_tval *tv_val, duk_bool_t throw_flag)
#define DUK_CANON_BITMAP_BLKSHIFT
DUK_EXTERNAL duk_bool_t duk_debugger_notify(duk_hthread *thr, duk_idx_t nvalues)
#define DUK__RE_BUFLEN(re_ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_reflect_object_has(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_proxy_constructor(duk_context *ctx)
#define DUK_OP_DECLVAR_RR
DUK_LOCAL duk_int_t duk__div_floor(duk_int_t a, duk_int_t b)
DUK_EXTERNAL duk_bool_t duk_get_global_heapptr(duk_hthread *thr, void *ptr)
#define DUK_UNICODE_MAX_XUTF8_LENGTH
DUK_LOCAL void duk__push_func_from_lightfunc(duk_hthread *thr, duk_c_function func, duk_small_uint_t lf_flags)
#define DUK_STR_QUANTIFIER_TOO_MANY_COPIES
DUK_LOCAL duk_bool_t duk__parse_string_iso8601_subset(duk_hthread *thr, const char *str)
#define DUK_HCOMPFUNC_GET_LEXENV(heap, h)
#define DUK_SYMBOL_TYPE_GLOBAL
DUK_EXTERNAL void * duk_require_buffer_data(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_size)
#define DUK_HEAP_REMOVE_FROM_HEAP_ALLOCATED(heap, hdr)
#define DUK__EMIT_FLAG_NO_SHUFFLE_C
DUK_EXTERNAL duk_bool_t duk_is_number(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL const char * duk_opt_lstring(duk_hthread *thr, duk_idx_t idx, duk_size_t *out_len, const char *def_ptr, duk_size_t def_len)
#define DUK__PI_MILLISECOND
#define DUK_STR_INVALID_BACKREFS
DUK_INTERNAL_DECL duk_hstring * duk_to_hstring_m1(duk_hthread *thr)
DUK_EXTERNAL duk_bool_t duk_get_prop_index(duk_hthread *thr, duk_idx_t obj_idx, duk_uarridx_t arr_idx)
#define DUK_TVAL_IS_BOOLEAN(tv)
#define DUK__DOUBLE_INT_CAST1(tname, minval, maxval)
#define DUK_BIDX_UINT16ARRAY_PROTOTYPE
DUK_INTERNAL_DECL duk_bool_t duk_js_toboolean(duk_tval *tv)
DUK_INTERNAL_DECL void duk_hbufobj_promote_plain(duk_hthread *thr, duk_idx_t idx)
#define DUK__APPENDBUFFER(lex_ctx, x)
#define DUK__RECURSION_DECREASE(comp_ctx, thr)
DUK_LOCAL DUK_EXEC_NOINLINE_PERF duk_small_uint_t duk__handle_op_endfin(duk_hthread *thr, duk_uint_fast32_t ins, duk_activation *entry_act)
#define DUK_TVAL_SET_NUMBER(tv, val)
#define DUK_HARRAY_LENGTH_WRITABLE(h)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_decode_xutf8(duk_hthread *thr, const duk_uint8_t **ptr, const duk_uint8_t *ptr_start, const duk_uint8_t *ptr_end, duk_ucodepoint_t *out_cp)
DUK_INTERNAL_DECL void duk_hobject_object_seal_freeze_helper(duk_hthread *thr, duk_hobject *obj, duk_bool_t is_freeze)
DUK_EXTERNAL duk_bool_t duk_get_global_string(duk_hthread *thr, const char *key)
DUK_LOCAL_DECL void duk__emit_a_b(duk_compiler_ctx *comp_ctx, duk_small_uint_t op_flags, duk_regconst_t a, duk_regconst_t b)
DUK_INTERNAL_DECL void duk_bw_write_raw_slice(duk_hthread *thr, duk_bufwriter_ctx *bw, duk_size_t src_off, duk_size_t len)
DUK_INTERNAL_DECL duk_small_uint_t duk_js_typeof_stridx(duk_tval *tv_x)
DUK_INTERNAL_DECL duk_ret_t duk_bi_object_prototype_is_prototype_of(duk_context *ctx)
#define DUK_CALL_FLAG_CONSTRUCT_PROXY
DUK_INTERNAL_DECL duk_bool_t duk_double_is_safe_integer(duk_double_t x)
#define DUK_DBG_PROPFLAG_SYMBOL
#define DUK_HBUFFER_GET_SIZE(x)
DUK_INTERNAL_DECL duk_bool_t duk_double_is_nan_zero_inf(duk_double_t x)
#define DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv)
DUK_EXTERNAL duk_int_t duk_get_type(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_harray * duk_push_harray_with_size(duk_hthread *thr, duk_uint32_t size)
#define DUK_HTHREAD_STRING_SET_PROTOTYPE_OF(thr)
DUK_INTERNAL_DECL duk_ret_t duk_bi_array_prototype_splice(duk_context *ctx)
#define DUK__PROP_TYPE_UNDEFINED
DUK_LOCAL_DECL duk_regconst_t duk__alloctemps(duk_compiler_ctx *comp_ctx, duk_small_int_t num)
#define DUK_BW_WRITE_ENSURE_XUTF8(thr, bw_ctx, cp)
DUK_LOCAL const duk_uint8_t * duk__inp_backtrack(duk_re_matcher_ctx *re_ctx, const duk_uint8_t **sp, duk_uint_fast32_t count)
DUK_LOCAL_DECL duk_int_t duk__parse_func_like_fnum(duk_compiler_ctx *comp_ctx, duk_small_uint_t flags)
DUK_LOCAL duk_uint32_t duk__push_this_obj_len_u32_limited(duk_hthread *thr)
DUK_LOCAL duk_bool_t duk__executor_handle_call(duk_hthread *thr, duk_idx_t idx, duk_idx_t nargs, duk_small_uint_t call_flags)
DUK_INTERNAL_DECL duk_bool_t duk_hobject_has_finalizer_fast_raw(duk_hobject *obj)
DUK_INTERNAL_DECL duk_bool_t duk_get_prop_stridx_short_raw(duk_hthread *thr, duk_uint_t packed_args)
#define DUK__LE_BODY(barg, carg)
#define DUK_RAW_READINC_U8(ptr)
DUK_LOCAL int duk__protected_compact_object(duk_hthread *thr, void *udata)
DUK_INTERNAL_DECL duk_hobject * duk_hobject_alloc_unchecked(duk_heap *heap, duk_uint_t hobject_flags)
DUK_LOCAL duk_hbufobj * duk__hbufobj_promote_this(duk_hthread *thr)
#define DUK_HOBJECT_CLASS_FLOAT64ARRAY
#define DUK_AUGMENT_FLAG_NOBLAME_FILELINE
DUK_LOCAL DUK_NOINLINE void duk__numconv_stringify_raw(duk_hthread *thr, duk_small_int_t radix, duk_small_int_t digits, duk_small_uint_t flags)
DUK_INTERNAL_DECL const char * duk_get_string_notsymbol(duk_hthread *thr, duk_idx_t idx)
DUK_INTERNAL_DECL duk_double_t duk_js_tointeger_number(duk_double_t x)
#define DUK_VALSTACK_INTERNAL_EXTRA
DUK_LOCAL_DECL void duk__parse_while_stmt(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_int_t pc_label_site)
DUK_INTERNAL_DECL void duk_dblunion_little_to_host(duk_double_union *u)
DUK_INTERNAL_DECL void duk_hthread_copy_builtin_objects(duk_hthread *thr_from, duk_hthread *thr_to)
DUK_EXTERNAL duk_codepoint_t duk_char_code_at(duk_hthread *thr, duk_idx_t idx, duk_size_t char_offset)
#define DUK_HCOMPFUNC_GET_CONSTS_BASE(heap, h)
DUK_INTERNAL_DECL duk_ret_t duk_bi_regexp_prototype_exec(duk_context *ctx)
#define DUK_STR_UTF8_DECODE_FAILED
DUK_INTERNAL_DECL void duk_xdef_prop_stridx(duk_hthread *thr, duk_idx_t obj_idx, duk_small_uint_t stridx, duk_small_uint_t desc_flags)
DUK_INTERNAL_DECL void * duk_default_realloc_function(void *udata, void *ptr, duk_size_t newsize)
DUK_EXTERNAL duk_int_t duk_require_int(duk_hthread *thr, duk_idx_t idx)
DUK_EXTERNAL duk_idx_t duk_push_thread_raw(duk_hthread *thr, duk_uint_t flags)
#define DUK_HOBJECT_FLAG_ARRAY_PART
#define DUK_BW_WRITE_ENSURE_CESU8(thr, bw_ctx, cp)
#define DUK_S2N_FLAG_ALLOW_GARBAGE
#define DUK_ERROR_RAW(thr, file, line, err, msg)
DUK_INTERNAL_DECL void duk_heap_free_heaphdr_raw(duk_heap *heap, duk_heaphdr *hdr)
DUK_LOCAL void duk__transform_callback_unescape(duk__transform_context *tfm_ctx, const void *udata, duk_codepoint_t cp)
DUK_LOCAL void duk__json_enc_buffer_data(duk_json_enc_ctx *js_ctx, duk_uint8_t *buf_data, duk_size_t buf_len)
DUK_INTERNAL_DECL duk_tval * duk_push_harray_with_size_outptr(duk_hthread *thr, duk_uint32_t size)
DUK_LOCAL const duk_uint8_t * duk__scan_backwards(const duk_uint8_t *p, const duk_uint8_t *q, duk_uint_fast32_t n)
DUK_EXTERNAL duk_double_t duk_get_number_default(duk_hthread *thr, duk_idx_t idx, duk_double_t def_value)
#define DUK_STRIDX_UC_FUNCTION
#define DUK__BUFOBJ_FLAG_THROW
DUK_EXTERNAL void duk_substring(duk_hthread *thr, duk_idx_t idx, duk_size_t start_offset, duk_size_t end_offset)
#define DUK_HEAPHDR_CLEAR_TEMPROOT(h)
DUK_LOCAL void duk__push_string(duk_hthread *thr, duk_bitdecoder_ctx *bd)
#define DUK_HOBJECT_HAS_NAMEBINDING(h)
#define DUK_STR_NATIVE_STACK_LIMIT
#define DUK__OUTPUT_TYPE_FILENAME
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_locale_compare(duk_context *ctx)
#define DUK_TAG_LIGHTFUNC
#define duk_get_hobject_promote_lfunc(thr, idx)
#define DUK_RETOK_ATOM_CHAR
DUK_LOCAL DUK_NOINLINE_PERF DUK_COLD void * duk__heap_mem_realloc_indirect_slowpath(duk_heap *heap, duk_mem_getptr cb, void *ud, duk_size_t newsize)
DUK_EXTERNAL duk_double_t duk_get_now(duk_hthread *thr)
DUK_LOCAL void duk__push_this_helper(duk_hthread *thr, duk_small_uint_t check_object_coercible)
DUK_INTERNAL_DECL duk_ret_t duk_bi_uint8array_allocplain(duk_context *ctx)
#define DUK_HOBJECT_HAS_FASTREFS(h)
DUK_LOCAL_DECL void duk__emit_a_b_c(duk_compiler_ctx *comp_ctx, duk_small_uint_t op_flags, duk_regconst_t a, duk_regconst_t b, duk_regconst_t c)
#define DUK_BC_CALL_FLAG_TAILCALL
DUK_LOCAL_DECL void duk__emit_if_true_skip(duk_compiler_ctx *comp_ctx, duk_regconst_t regconst)
#define DUK_NUM_ALL_BUILTINS
DUK_LOCAL_DECL void duk__js_execute_bytecode_inner(duk_hthread *entry_thread, duk_activation *entry_act)
#define DUK_STRIDX_JSON_EXT_POSINF
DUK_LOCAL duk_bool_t duk__objlit_load_key(duk_compiler_ctx *comp_ctx, duk_ivalue *res, duk_token *tok, duk_regconst_t reg_temp)
DUK_EXTERNAL duk_bool_t duk_get_global_lstring(duk_hthread *thr, const char *key, duk_size_t key_len)
#define DUK_HDECENV_ASSERT_VALID(h)
DUK_LOCAL DUK_NOINLINE void duk__call_c_recursion_limit_check_slowpath(duk_hthread *thr)
DUK_LOCAL_DECL void duk__mark_tval(duk_heap *heap, duk_tval *tv)
DUK_INTERNAL_DECL void duk_regexp_compile(duk_hthread *thr)
DUK_INTERNAL_DECL duk_hobject * duk_push_this_coercible_to_object(duk_hthread *thr)
DUK_INTERNAL_DECL duk_ret_t duk_bi_pointer_prototype_tostring_shared(duk_context *ctx)
DUK_INTERNAL_DECL duk_ret_t duk_bi_string_prototype_to_string(duk_context *ctx)
#define DUK_HTHREAD_DECREF(thr, h)
#define DUK_STRIDX_JSON_EXT_FUNCTION1
DUK_INTERNAL_DECL duk_uint_t duk_hbufobj_clamp_bytelength(duk_hbufobj *h_bufobj, duk_uint_t len)
#define DUK_HCOMPFUNC_SET_DATA(heap, h, v)
#define DUK_BW_INSERT_ENSURE_AREA(thr, bw, off, len)
DUK_INTERNAL const duk_uint16_t duk_unicode_re_ranges_white[22]
DUK_EXTERNAL duk_bool_t duk_is_buffer_data(duk_hthread *thr, duk_idx_t idx)
#define DUK_STRIDX_UC_BUFFER
#define DUK_SYMBOL_TYPE_LOCAL
#define DUK_SYMBOL_TYPE_HIDDEN
DUK_LOCAL duk_uint8_t * duk__dump_hbuffer_raw(duk_hthread *thr, duk_uint8_t *p, duk_hbuffer *h)
DUK_INTERNAL_DECL void duk_dup_0(duk_hthread *thr)
DUK_EXTERNAL duk_bool_t duk_to_boolean(duk_hthread *thr, duk_idx_t idx)
#define DUK_STR_PROXY_REJECTED
DUK_INTERNAL_DECL duk_ret_t duk_bi_pointer_constructor(duk_context *ctx)
DUK_LOCAL_DECL void duk__json_enc_newline_indent(duk_json_enc_ctx *js_ctx, duk_uint_t depth)
#define DUK_TVAL_SET_U32_UPDREF
#define DUK_DATE_FLAG_SUB1900
#define DUK_BUFOBJ_UINT8ARRAY
#define DUK_DEFPROP_SET_WEC
#define DUK_COMPILE_SHEBANG
#define DUK_ERR_TYPE_ERROR
#define DUK_ENUM_ARRAY_INDICES_ONLY
#define DUK_DEFPROP_SET_ENUMERABLE
duk_ret_t(* duk_safe_call_function)(duk_context *ctx, void *udata)
duk_size_t(* duk_debug_read_function)(void *udata, char *buffer, duk_size_t length)
#define DUK_DATE_IDX_SECOND
#define DUK_TYPE_MASK_STRING
#define DUK_DEFPROP_HAVE_GETTER
void *(* duk_alloc_function)(void *udata, duk_size_t size)
#define DUK_ENUM_SORT_ARRAY_INDICES
#define duk_require_callable(ctx, idx)
#define duk_fatal(ctx, err_msg)
void(* duk_debug_detached_function)(duk_context *ctx, void *udata)
#define DUK_DATE_IDX_YEAR
#define DUK_TYPE_LIGHTFUNC
#define DUK_BUF_FLAG_NOZERO
#define duk_push_thread(ctx)
#define DUK_ENUM_NO_PROXY_BEHAVIOR
void(* duk_debug_write_flush_function)(void *udata)
#define DUK_DATE_FLAG_TOSTRING_DATE
#define DUK_DEBUG_PROTOCOL_VERSION
#define duk_is_null_or_undefined(ctx, idx)
#define DUK_DATE_MSEC_100M_DAYS
#define DUK_DATE_FLAG_EQUIVYEAR
#define DUK_DATE_IDX_HOUR
#define duk_is_primitive(ctx, idx)
#define duk_push_fixed_buffer(ctx, size)
#define DUK_TYPE_UNDEFINED
#define duk_require_object_coercible(ctx, idx)
#define DUK_TYPE_MASK_OBJECT
#define duk_put_prop_literal(ctx, obj_idx, key)
duk_codepoint_t(* duk_map_char_function)(void *udata, duk_codepoint_t codepoint)
#define DUK_BUF_MODE_DONTCARE
#define DUK_DATE_IDX_MONTH
#define DUK_DATE_MSEC_100M_DAYS_LEEWAY
#define DUK_BUF_MODE_DYNAMIC
#define DUK_DEFPROP_HAVE_VALUE
#define DUK_DATE_IDX_WEEKDAY
#define DUK_DATE_MIN_ECMA_YEAR
#define DUK_BUF_FLAG_DYNAMIC
#define DUK_DATE_MSEC_MINUTE
void(* duk_free_function)(void *udata, void *ptr)
void(* duk_debug_read_flush_function)(void *udata)
#define DUK_COMPILE_NORESULT
void *(* duk_realloc_function)(void *udata, void *ptr, duk_size_t size)
#define DUK_TYPE_MASK_BUFFER
#define DUK_RET_TYPE_ERROR
#define DUK_DATE_FLAG_LOCALTIME
#define DUK_DATE_FLAG_TIMESETTER
#define DUK_DEFPROP_FORCE
#define duk_get_prop_literal(ctx, obj_idx, key)
#define DUK_TYPE_MASK_LIGHTFUNC
#define DUK_DEFPROP_CONFIGURABLE
#define DUK_BUF_FLAG_EXTERNAL
#define DUK_DATE_FLAG_TOSTRING_LOCALE
void(* duk_fatal_function)(void *udata, const char *msg)
#define DUK_DATE_FLAG_TOSTRING_TIME
#define DUK_TYPE_MASK_NONE
#define duk_to_fixed_buffer(ctx, idx, out_size)
#define DUK_DEFPROP_HAVE_WRITABLE
#define DUK_COMPILE_FUNCTION
#define DUK_DATE_MSEC_SECOND
duk_idx_t(* duk_debug_request_function)(duk_context *ctx, void *udata, duk_idx_t nvalues)
#define DUK_TYPE_MASK_NULL
#define DUK_COMPILE_NOSOURCE
#define DUK_TYPE_MASK_NUMBER
#define DUK_ERR_EVAL_ERROR
#define DUK_ENUM_OWN_PROPERTIES_ONLY
#define DUK_DATE_MSEC_HOUR
duk_size_t(* duk_debug_peek_function)(void *udata)
#define DUK_ERR_SYNTAX_ERROR
#define DUK_DATE_IDX_MINUTE
#define DUK_INVALID_INDEX
#define DUK_ERR_RANGE_ERROR
#define DUK_TYPE_MASK_PROMOTE
#define duk_push_buffer(ctx, size, dynamic)
#define DUK_TYPE_MASK_BOOLEAN
#define DUK_DATE_FLAG_NAN_TO_RANGE_ERROR
#define duk_push_literal(ctx, cstring)
#define DUK_DATE_IDX_MILLISECOND
#define DUK_TYPE_MASK_THROW
#define duk_safe_to_string(ctx, idx)
duk_size_t(* duk_debug_write_function)(void *udata, const char *buffer, duk_size_t length)
#define DUK_DEFPROP_SET_WRITABLE
#define DUK_DEFPROP_HAVE_SETTER
#define DUK_COMPILE_STRLEN
duk_ret_t(* duk_c_function)(duk_context *ctx)
#define DUK_DEFPROP_HAVE_CONFIGURABLE
#define DUK_DEFPROP_ENUMERABLE
#define DUK_THREAD_NEW_GLOBAL_ENV
#define DUK_TYPE_MASK_POINTER
#define DUK_BUF_MODE_FIXED
#define duk_to_buffer(ctx, idx, out_size)
#define DUK_ERR_REFERENCE_ERROR
#define DUK_DEFPROP_HAVE_ENUMERABLE
#define DUK_INTERNAL_SYMBOL(x)
#define DUK_DATE_IDX_NUM_PARTS
#define DUK_ENUM_INCLUDE_SYMBOLS
#define duk_push_dynamic_buffer(ctx, size)
#define DUK_COMPILE_NOFILENAME
#define DUK_DATE_MSEC_DAY
#define DUK_DEFPROP_SET_CONFIGURABLE
#define DUK_DATE_FLAG_YEAR_FIXUP
#define DUK_ENUM_INCLUDE_HIDDEN
#define DUK_DATE_FLAG_NAN_TO_ZERO
#define DUK_TYPE_MASK_UNDEFINED
#define DUK_ENUM_EXCLUDE_STRINGS
#define DUK_DEFPROP_WRITABLE
#define DUK_DATE_FLAG_SEP_T
#define duk_is_callable(ctx, idx)
void(* duk_decode_char_function)(void *udata, duk_codepoint_t codepoint)
#define duk_require_type_mask(ctx, idx, mask)
#define DUK_COMPILE_FUNCEXPR
#define duk_push_error_object
#define duk_is_error(ctx, idx)
#define DUK_COMPILE_STRICT
#define DUK_DATE_FLAG_ONEBASED
#define DUK_ERR_URI_ERROR
#define duk_eval_string_noresult(ctx, src)
#define DUK_BUFOBJ_ARRAYBUFFER
#define DUK_DATE_MAX_ECMA_YEAR
#define DUK_ENUM_INCLUDE_NONENUMERABLE
#define DUK_DATE_FLAG_VALUE_SHIFT
static struct directory * root
Interface to utility string handling.
duk_uint32_t v[DUK__BI_MAX_PARTS]
const duk_uint8_t * src_buffer
duk_lexer_point lex_pt_alloc
duk_compiler_ctx comp_ctx_alloc
duk_codepoint_t codepoint
duk_small_int_t req_digits
duk_uint8_t digits[DUK__MAX_OUTPUT_DIGITS]
duk_small_int_t unequal_gaps
duk_small_uint_t num_total_pairs
duk_regconst_t temp_start
duk_small_uint_t num_pairs
duk_small_uint_t call_flags
duk_small_uint_t call_flags
duk_small_uint_t call_flags
const duk_uint8_t * p_start
const duk_uint8_t * p_end
duk_size_t reserve_byteoff
duk_size_t retval_byteoff
duk_size_t bottom_byteoff
duk_small_int_t truncated
duk_hbuffer_dynamic * buf
duk_uint_t recursion_limit
duk_uint_t recursion_depth
duk_uint_t recursion_depth
duk_uint_t recursion_limit
duk_compiler_func curr_func
duk_int_t recursion_limit
duk_int_t recursion_depth
duk_int_t emit_jumpslot_pc
duk_regconst_t reg_stmt_value
duk_hbuffer_dynamic * h_labelinfos
duk_uint8_t may_direct_eval
duk_uint8_t is_arguments_shadowed
duk_uint8_t is_namebinding
duk_uint8_t needs_shuffle
duk_uint8_t id_access_arguments
duk_uint8_t id_access_slow_own
duk_regconst_t temp_first
duk_uint8_t id_access_slow
duk_bufwriter_ctx bw_code
duk_hobject * h_labelnames
duk_uint8_t reject_regexp_in_adv
duk_uint8_t in_directive_prologue
duk_uint8_t allow_regexp_in_adv
duk_uint8_t is_constructable
duk_bool_t length_nonwritable
duk_double_t dummy_for_align8_1
union duk_hbuffer_fixed::@129 u
struct duk_hbuffer_fixed::@129::@130 s
duk_uint8_t is_typedarray
duk_size_t regbase_byteoff
duk_heaphdr * heap_allocated
duk_uint32_t sym_counter[2]
duk_int_t call_recursion_limit
duk_heaphdr * refzero_list
duk_fatal_function fatal_func
duk_catcher * catcher_free
duk_uint_t ms_recursion_depth
duk_heaphdr * finalize_list
duk_hobject * heap_object
duk_realloc_function realloc_func
duk_uint_t pf_prevent_count
duk_litcache_entry litcache[DUK_USE_LITCACHE_SIZE]
duk_uint_t ms_prevent_count
duk_free_function free_func
duk_hthread * heap_thread
duk_activation * activation_free
duk_hthread * curr_thread
duk_bool_t creating_error
duk_hstring * strs[DUK_HEAP_NUM_STRINGS]
duk_bool_t augmenting_error
duk_int_t call_recursion_depth
duk_alloc_function alloc_func
duk_small_uint_t ms_base_flags
duk_strcache_entry strcache[DUK_HEAP_STRCACHE_SIZE]
duk_uint_t pf_skip_finalizers
duk_int_t ms_trigger_counter
const duk_uint8_t * extdata
duk_compiler_ctx * compile_ctx
duk_instr_t ** ptr_curr_pc
duk_tval * valstack_bottom
duk_hobject * builtins[DUK_NUM_BUILTINS]
duk_tval * valstack_alloc_end
duk_size_t callstack_preventcount
duk_activation * callstack_curr
duk_int_t interrupt_counter
duk_int_t call_recursion_depth
duk_hthread * curr_thread
duk_bool_t creating_error
const duk_uint8_t * p_end
duk_small_uint_t flag_ext_custom
duk_small_uint_t flag_ext_compatible
duk_int_t recursion_depth
duk_int_t recursion_limit
duk_small_uint_t flag_ext_custom_or_compatible
const duk_uint8_t * p_start
duk_small_uint_t stridx_custom_function
duk_hobject * visiting[DUK_JSON_ENC_LOOPARRAY]
duk_small_uint_t flag_avoid_key_quotes
duk_uint_t mask_for_undefined
duk_small_uint_t stridx_custom_undefined
duk_small_uint_t flag_ext_custom_or_compatible
duk_uint_t recursion_limit
duk_uint_t recursion_depth
duk_small_uint_t flag_ascii_only
duk_small_uint_t flag_ext_custom
duk_small_uint_t stridx_custom_posinf
duk_small_uint_t stridx_custom_nan
duk_small_uint_t stridx_custom_neginf
duk_small_uint_t flag_ext_compatible
duk_codepoint_t codepoint
duk_lexer_codepoint * window
duk_hbuffer_dynamic * buf
const duk_uint8_t * input
duk_lexer_codepoint buffer[DUK_LEXER_BUFFER_SIZE]
duk_free_function free_func
duk_realloc_function realloc_func
duk_alloc_function alloc_func
duk_uint32_t highest_backref
duk_uint32_t recursion_depth
duk_uint32_t recursion_limit
const duk_uint8_t * input_end
const duk_uint8_t * input
const duk_uint8_t ** saved
duk_uint32_t recursion_depth
const duk_uint8_t * bytecode_end
const duk_uint8_t * bytecode
duk_uint32_t recursion_limit
duk_double_t milliseconds
duk_bool_t allow_auto_semi
duk_hcompfunc * hcompfunc
union duk_tval_struct::@128 v
static nserror line(const struct redraw_context *ctx, const plot_style_t *style, const struct rect *line)
Plots a line.