diff --git a/collects/compiler/src2src.rkt b/collects/compiler/src2src.rkt index f6d635f772..ffbb6aa62b 100644 --- a/collects/compiler/src2src.rkt +++ b/collects/compiler/src2src.rkt @@ -36,7 +36,8 @@ ;; install functions that can be used later. (define (non-valueable-prims) (procedure-calling-prims)) - (define code-insp (current-code-inspector)) + (define code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (keep-mzc-property stx-out stx) (let ([v (syntax-property stx 'mzc-cffi)] diff --git a/collects/compiler/to-core.rkt b/collects/compiler/to-core.rkt index 386e2baae0..7fcafad27b 100644 --- a/collects/compiler/to-core.rkt +++ b/collects/compiler/to-core.rkt @@ -334,7 +334,8 @@ (syntax-e new-s) old-s old-s))])) - (define code-insp (current-code-inspector)) + (define code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (convert stx trans? lookup-stx set-stx safe-vector-ref-stx id li in-module? simple-constant? stop-properties) diff --git a/collects/errortrace/errortrace-lib.rkt b/collects/errortrace/errortrace-lib.rkt index 468a6785d3..2fb5465abc 100644 --- a/collects/errortrace/errortrace-lib.rkt +++ b/collects/errortrace/errortrace-lib.rkt @@ -37,7 +37,8 @@ (hash-for-each hash (lambda (x y) (unless (eq? x 'base) (set! covered (cons x covered))))) (values all covered))) -(define code-insp (current-code-inspector)) +(define code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (disarm stx) (syntax-disarm stx code-insp)) diff --git a/collects/errortrace/stacktrace.rkt b/collects/errortrace/stacktrace.rkt index 17dc627564..a413d51315 100644 --- a/collects/errortrace/stacktrace.rkt +++ b/collects/errortrace/stacktrace.rkt @@ -254,7 +254,8 @@ [bodyl (map (lambda (b) (annotate b phase)) bodys)]) (rebuild expr (map cons bodys bodyl)))) - (define orig-inspector (current-code-inspector)) + (define orig-inspector (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (rearm orig new) (syntax-rearm new orig)) diff --git a/collects/ffi/unsafe.rkt b/collects/ffi/unsafe.rkt index 4a21d279fd..4d16620752 100644 --- a/collects/ffi/unsafe.rkt +++ b/collects/ffi/unsafe.rkt @@ -252,7 +252,8 @@ ;; new syntax transformer be an object that carries extra information, later ;; used by `expand-fun-syntax/fun'. - (define orig-inspector (current-code-inspector)) + (define orig-inspector (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (disarm stx) (syntax-disarm stx orig-inspector)) diff --git a/collects/frtime/lang-ext.rkt b/collects/frtime/lang-ext.rkt index cf80e61f0e..a26182a89a 100644 --- a/collects/frtime/lang-ext.rkt +++ b/collects/frtime/lang-ext.rkt @@ -707,7 +707,8 @@ free ...) (lambda forms body ...))])) -(define-for-syntax code-insp (current-code-inspector)) +(define-for-syntax code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define-syntax (command-lambda stx) diff --git a/collects/gui-debugger/annotator.rkt b/collects/gui-debugger/annotator.rkt index af0f87fb15..2923911ddf 100644 --- a/collects/gui-debugger/annotator.rkt +++ b/collects/gui-debugger/annotator.rkt @@ -397,4 +397,5 @@ (define (disarm stx) (syntax-disarm stx code-insp)) (define (rearm old new) (syntax-rearm new old)) - (define code-insp (current-code-inspector))) + (define code-insp (variable-reference->module-declaration-inspector + (#%variable-reference)))) diff --git a/collects/lang/private/teach-shared.rkt b/collects/lang/private/teach-shared.rkt index e6a6cfc4d1..f155cdaab1 100644 --- a/collects/lang/private/teach-shared.rkt +++ b/collects/lang/private/teach-shared.rkt @@ -12,7 +12,8 @@ scheme/base (only-in "teachprims.rkt" [advanced-cons the-cons]))) -(define code-insp (current-code-inspector)) +(define code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define shared/proc (lambda (stx make-check-cdr undefined-expr) diff --git a/collects/mzlib/private/package-helper.rkt b/collects/mzlib/private/package-helper.rkt index e700f12a5f..837f4df748 100644 --- a/collects/mzlib/private/package-helper.rkt +++ b/collects/mzlib/private/package-helper.rkt @@ -46,7 +46,8 @@ ((bound-identifier=? id (caar renames)) (car renames)) (else (stx-assoc id (cdr renames))))) - (define insp (current-code-inspector)) + (define insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (rebuild ctxt val) (if (syntax? ctxt) diff --git a/collects/mzlib/shared.rkt b/collects/mzlib/shared.rkt index e1abe2b8ef..995bc9fd95 100644 --- a/collects/mzlib/shared.rkt +++ b/collects/mzlib/shared.rkt @@ -9,7 +9,8 @@ (provide shared) -(define-for-syntax code-insp (current-code-inspector)) +(define-for-syntax code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define undefined (letrec ([x x]) x)) (require (only-in scheme/base [cons the-cons])) diff --git a/collects/parser-tools/private-lex/stx.rkt b/collects/parser-tools/private-lex/stx.rkt index 83d610ad21..f178847a50 100644 --- a/collects/parser-tools/private-lex/stx.rkt +++ b/collects/parser-tools/private-lex/stx.rkt @@ -28,7 +28,8 @@ ((char-range-arg #'#\1 #'here) (char->integer #\1)) ((char-range-arg #'"1" #'here) (char->integer #\1))) - (define orig-insp (current-code-inspector)) + (define orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (disarm stx) (syntax-disarm stx orig-insp)) diff --git a/collects/racket/match/parse-legacy.rkt b/collects/racket/match/parse-legacy.rkt index a42521c710..6c5d15f68d 100644 --- a/collects/racket/match/parse-legacy.rkt +++ b/collects/racket/match/parse-legacy.rkt @@ -11,7 +11,8 @@ (provide parse/legacy) -(define orig-insp (current-code-inspector)) +(define orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (parse/legacy stx) (define (rearm new-stx) (syntax-rearm new-stx stx)) diff --git a/collects/racket/match/parse.rkt b/collects/racket/match/parse.rkt index c216bf38ad..9ef5d717d7 100644 --- a/collects/racket/match/parse.rkt +++ b/collects/racket/match/parse.rkt @@ -17,7 +17,8 @@ [(a b) #'(list a b)] [x (identifier? #'x) #'x])) -(define orig-insp (current-code-inspector)) +(define orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) ;; parse : syntax -> Pat ;; compile stx into a pattern, using the new syntax diff --git a/collects/racket/package.rkt b/collects/racket/package.rkt index 7d7aa423a0..e5f41e6243 100644 --- a/collects/racket/package.rkt +++ b/collects/racket/package.rkt @@ -102,7 +102,8 @@ orig orig)) -(define-for-syntax code-insp (current-code-inspector)) +(define-for-syntax code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define-for-syntax (disarm* stx) (cond [(and (syntax? stx) diff --git a/collects/racket/private/class-internal.rkt b/collects/racket/private/class-internal.rkt index 9d6028a183..1d37bf8598 100644 --- a/collects/racket/private/class-internal.rkt +++ b/collects/racket/private/class-internal.rkt @@ -633,9 +633,10 @@ (syntax-property l 'method-arity-error #t)) ;; `class' wants to be priviledged with respect to - ;; syntax taints: save the load-time inspector and use it + ;; syntax taints: save the declaration-time inspector and use it ;; to disarm syntax taints - (define method-insp (current-code-inspector)) + (define method-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (disarm stx) (syntax-disarm stx method-insp)) (define (rearm new old) diff --git a/collects/racket/private/classidmap.rkt b/collects/racket/private/classidmap.rkt index 3673823388..90d2a3e647 100644 --- a/collects/racket/private/classidmap.rkt +++ b/collects/racket/private/classidmap.rkt @@ -5,7 +5,8 @@ (for-template scheme/base "class-events.rkt") "define-struct.rkt") -(define insp (current-code-inspector)) +(define insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (class-syntax-protect stx) (syntax-arm stx insp #t)) diff --git a/collects/racket/private/for.rkt b/collects/racket/private/for.rkt index 359e1405ae..23144bb562 100644 --- a/collects/racket/private/for.rkt +++ b/collects/racket/private/for.rkt @@ -159,7 +159,8 @@ ;; ill-formed clause... clause])) - (define orig-insp (current-code-inspector)) + (define orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (for-clause-syntax-protect clause) ;; This is slightly painful. The expansion into `:do-in' involves a lot diff --git a/collects/racket/provide-syntax.rkt b/collects/racket/provide-syntax.rkt index b80034688a..4b818886b3 100644 --- a/collects/racket/provide-syntax.rkt +++ b/collects/racket/provide-syntax.rkt @@ -5,7 +5,8 @@ (require (for-syntax racket/base "provide-transform.rkt")) -(define-for-syntax orig-insp (current-code-inspector)) +(define-for-syntax orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define-for-syntax (make-provide-macro proc) (make-provide-transformer diff --git a/collects/racket/provide-transform.rkt b/collects/racket/provide-transform.rkt index c970d5582f..6a600d9d08 100644 --- a/collects/racket/provide-transform.rkt +++ b/collects/racket/provide-transform.rkt @@ -42,7 +42,8 @@ [(v) v] [(v mark) v])) - (define orig-insp (current-code-inspector)) + (define orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) ;; expand-export : stx -> (listof export) (define (expand-export stx modes) diff --git a/collects/racket/require-syntax.rkt b/collects/racket/require-syntax.rkt index 42beeb7e9e..34d3d8732a 100644 --- a/collects/racket/require-syntax.rkt +++ b/collects/racket/require-syntax.rkt @@ -5,7 +5,8 @@ (require (for-syntax racket/base "require-transform.rkt")) -(define-for-syntax orig-insp (current-code-inspector)) +(define-for-syntax orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define-for-syntax (make-require-macro proc) (make-require-transformer diff --git a/collects/racket/require-transform.rkt b/collects/racket/require-transform.rkt index 2525c28630..c9fb9d4bd1 100644 --- a/collects/racket/require-transform.rkt +++ b/collects/racket/require-transform.rkt @@ -71,7 +71,8 @@ [(v) v] [(v mark) v])) - (define orig-insp (current-code-inspector)) + (define orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) ;; expand-import : stx bool -> (listof import) (define (expand-import stx) diff --git a/collects/racket/sandbox.rkt b/collects/racket/sandbox.rkt index 9b3068f701..1cfbc95269 100644 --- a/collects/racket/sandbox.rkt +++ b/collects/racket/sandbox.rkt @@ -560,13 +560,13 @@ ;; We need a powerful enough code inspector to invoke the errortrace library ;; (indirectly through private/sandbox-coverage). But there is a small problem -;; here -- errortrace/stacktrace.rkt will grab the global code inspector value -;; at the time it is invoked. So we grab it here too, and use it to wrap the -;; code that invokes errortrace. If errortrace/stacktrace.rkt is changed to -;; grab the current inspector, then it would be better to avoid this here, and -;; pass `evaluate-program' the inspector that was in effect when the sandbox -;; was created. -(define orig-code-inspector (current-code-inspector)) +;; here -- errortrace/stacktrace.rkt will grab the declaration-tme code inspector. +;; So we grab it here too, and use it to wrap the code that invokes errortrace. +;; If errortrace/stacktrace.rkt is changed to grab the current inspector, then +;; it would be better to avoid this here, and pass `evaluate-program' the +;; inspector that was in effect when the sandbox was created. +(define orig-code-inspector (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (evaluate-program program limit-thunk uncovered!) (when uncovered! diff --git a/collects/racklog/racklog.rkt b/collects/racklog/racklog.rkt index ae62952147..b204457e18 100644 --- a/collects/racklog/racklog.rkt +++ b/collects/racklog/racklog.rkt @@ -72,7 +72,8 @@ (define %true (lambda (fk) fk)) -(define-for-syntax orig-insp (current-code-inspector)) +(define-for-syntax orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define-syntax (%is stx) (syntax-case stx () diff --git a/collects/scribblings/guide/syntax-taints.scrbl b/collects/scribblings/guide/syntax-taints.scrbl index c18535440c..13f473d304 100644 --- a/collects/scribblings/guide/syntax-taints.scrbl +++ b/collects/scribblings/guide/syntax-taints.scrbl @@ -201,10 +201,11 @@ With this arrangement, macro-generating macros require some care, since the generating macro may embed syntax objects in the generated macro that need to have the generating module's protection level, rather than the protection level of the module that contains the -generated macro. To avoid this problem, capture the value of -@racket[(current-code-inspector)] as part of the generating macro's -expand-time code and used it to define a variant of -@racket[syntax-protect] that uses the captured inspector. +generated macro. To avoid this problem, use the module's +declaration-time inspector, which is accessible as +@racket[(variable-reference->module-declaration-inspector +(#%variable-reference))], and use it to define a variant of +@racket[syntax-protect]. For example, suppose that the @racket[go] macro is implemented through a macro: @@ -243,7 +244,8 @@ racket (+ n 17)) (define-for-syntax go-syntax-protect - (let ([insp (current-code-inspector)]) + (let ([insp (variable-reference->module-declaration-inspector + (#%variable-reference))]) (lambda (stx) (syntax-arm stx insp)))) (define-syntax (def-go stx) @@ -269,7 +271,7 @@ prevent access from untrusted modules. Such exports should use the Code inspectors, again, provide the mechanism for determining which modules are trusted and which are untrusted. When a module is declared, the value of @racket[current-code-inspector] is associated -to the module instance. When a module is instantiated (i.e., when the +to the module declaration. When a module is instantiated (i.e., when the body of the declaration is actually executed), a sub-inspector is created to guard the module's exports. Access to the module's @tech{protected} exports requires a code inspector higher in the diff --git a/collects/scribblings/reference/namespaces.scrbl b/collects/scribblings/reference/namespaces.scrbl index a049c78685..228a02a7df 100644 --- a/collects/scribblings/reference/namespaces.scrbl +++ b/collects/scribblings/reference/namespaces.scrbl @@ -423,3 +423,12 @@ for @racket[varref] is not within a module. For a variable with a module, the result is less than the result of @racket[(variable-reference->phase varref)] by @math{n} when the variable is bound at @tech{phase level} @math{n} within the module.} + + +@defproc[(variable-reference->module-declaration-inspector [varref variable-reference?]) + inspector?]{ + +Returns the declaration @tech{inspector} (see @secref["modprotect"]) +for the module of @racket[varref], where @racket[varref] must refer to +an anonymous module variable as produced by +@racket[(#%variable-reference)].} diff --git a/collects/slideshow/tool.rkt b/collects/slideshow/tool.rkt index 9554488580..a9f1b50459 100644 --- a/collects/slideshow/tool.rkt +++ b/collects/slideshow/tool.rkt @@ -32,7 +32,8 @@ pict snip : get-snp/poss build-lib-pict-stx) - (define orig-inspector (current-code-inspector)) + (define orig-inspector (variable-reference->module-declaration-inspector + (#%variable-reference))) (define orig-lcp (current-library-collection-paths)) (define tool@ diff --git a/collects/stepper/private/annotate.rkt b/collects/stepper/private/annotate.rkt index 2a73746f33..9928dafac4 100644 --- a/collects/stepper/private/annotate.rkt +++ b/collects/stepper/private/annotate.rkt @@ -1371,9 +1371,6 @@ ; body of local (annotate/top-level main-exp)) - -(define saved-code-inspector (current-code-inspector)) - (define (stepper-recertify new-stx old-stx) (syntax-rearm new-stx old-stx #t)) diff --git a/collects/stepper/private/reconstruct.rkt b/collects/stepper/private/reconstruct.rkt index bd4bac8bcd..32e86a391c 100644 --- a/collects/stepper/private/reconstruct.rkt +++ b/collects/stepper/private/reconstruct.rkt @@ -358,7 +358,7 @@ [stepper-safe-expanded (skipto/auto expanded-application 'discard (lambda (x) x))] [just-the-fn (kernel:kernel-syntax-case - (syntax-disarm stepper-safe-expanded (current-code-inspector)) #f + (syntax-disarm stepper-safe-expanded saved-code-inspector) #f ; STC: lazy racket case ; Must change this case if lazy language changes! [(#%plain-app diff --git a/collects/stepper/private/shared.rkt b/collects/stepper/private/shared.rkt index 792256151a..3c31bf2522 100644 --- a/collects/stepper/private/shared.rkt +++ b/collects/stepper/private/shared.rkt @@ -82,7 +82,7 @@ re-intern-identifier finished-xml-box-table language-level->name - + saved-code-inspector stepper-syntax-property with-stepper-syntax-properties @@ -421,7 +421,8 @@ (define (queue-length queue) (length (unbox queue))) - (define saved-code-inspector (current-code-inspector)) + (define saved-code-inspector (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (rebuild-stx new old) (datum->syntax old new old old)) diff --git a/collects/syntax/free-vars.rkt b/collects/syntax/free-vars.rkt index 91cc518855..b365167416 100644 --- a/collects/syntax/free-vars.rkt +++ b/collects/syntax/free-vars.rkt @@ -43,39 +43,39 @@ ;; free-vars : expr-stx -> (listof id) ;; Returns a list of free lambda- and let-bound identifiers in a ;; given epression. The expression must be fully expanded. -(define (free-vars e) - (let ([code-insp (current-code-inspector)]) - (let free-vars ([e e]) - (kernel-syntax-case (syntax-disarm e code-insp) #f - [id - (identifier? #'id) - (if (eq? 'lexical (identifier-binding #'id)) - (list #'id) - null)] - [(#%top . id) null] - [(quote q) null] - [(quote-syntax q) null] - [(#%plain-lambda formals expr ...) - (let ([free (merge (map free-vars (syntax->list #'(expr ...))))] - [bindings (formals->boundmap #'formals)]) - (filter (lambda (id) - (not (bound-identifier-mapping-get bindings id (lambda () #f)))) - free))] - [(case-lambda [formals expr ...] ...) - (merge (map free-vars (syntax->list - #'((#%plain-lambda formals expr ...) ...))))] - [(let-values ([(id ...) rhs] ...) expr ...) - (merge (cons (free-vars #'(#%plain-lambda (id ... ...) expr ...)) - (map free-vars (syntax->list #'(rhs ...)))))] - [(letrec-values ([(id ...) rhs] ...) expr ...) - (free-vars #'(#%plain-lambda (id ... ...) rhs ... expr ...))] - [(letrec-syntaxes+values stx-bindings ([(id ...) rhs] ...) expr ...) - (free-vars #'(#%plain-lambda (id ... ...) rhs ... expr ...))] - [(kw expr ...) - (ormap (lambda (k) (free-identifier=? k #'kw)) - (list #'if #'begin #'begin0 #'set! #'#%plain-app #'#%expression - #'#%variable-reference #'with-continuation-mark)) - (merge (map free-vars (syntax->list #'(expr ...))))] - [(kw . _) - (error 'free-vars "unknown core form: ~a" (syntax->datum #'kw))])))) - +(define (free-vars e [code-insp + (variable-reference->module-declaration-inspector + (#%variable-reference))]) + (let free-vars ([e e]) + (kernel-syntax-case (syntax-disarm e code-insp) #f + [id + (identifier? #'id) + (if (eq? 'lexical (identifier-binding #'id)) + (list #'id) + null)] + [(#%top . id) null] + [(quote q) null] + [(quote-syntax q) null] + [(#%plain-lambda formals expr ...) + (let ([free (merge (map free-vars (syntax->list #'(expr ...))))] + [bindings (formals->boundmap #'formals)]) + (filter (lambda (id) + (not (bound-identifier-mapping-get bindings id (lambda () #f)))) + free))] + [(case-lambda [formals expr ...] ...) + (merge (map free-vars (syntax->list + #'((#%plain-lambda formals expr ...) ...))))] + [(let-values ([(id ...) rhs] ...) expr ...) + (merge (cons (free-vars #'(#%plain-lambda (id ... ...) expr ...)) + (map free-vars (syntax->list #'(rhs ...)))))] + [(letrec-values ([(id ...) rhs] ...) expr ...) + (free-vars #'(#%plain-lambda (id ... ...) rhs ... expr ...))] + [(letrec-syntaxes+values stx-bindings ([(id ...) rhs] ...) expr ...) + (free-vars #'(#%plain-lambda (id ... ...) rhs ... expr ...))] + [(kw expr ...) + (ormap (lambda (k) (free-identifier=? k #'kw)) + (list #'if #'begin #'begin0 #'set! #'#%plain-app #'#%expression + #'#%variable-reference #'with-continuation-mark)) + (merge (map free-vars (syntax->list #'(expr ...))))] + [(kw . _) + (error 'free-vars "unknown core form: ~a" (syntax->datum #'kw))]))) diff --git a/collects/syntax/scribblings/free-vars.scrbl b/collects/syntax/scribblings/free-vars.scrbl index 7166ac2b30..bfdac6d87f 100644 --- a/collects/syntax/scribblings/free-vars.scrbl +++ b/collects/syntax/scribblings/free-vars.scrbl @@ -5,9 +5,15 @@ @defmodule[syntax/free-vars] -@defproc[(free-vars [expr-stx syntax?]) (listof identifier?)]{ +@defproc[(free-vars [expr-stx syntax?] [insp inspector? _mod-decl-insp]) + (listof identifier?)]{ Returns a list of free @racket[lambda]- and @racket[let]-bound identifiers in @racket[expr-stx]. The expression must be fully expanded (see @secref[#:doc refman "fully-expanded"] and -@racket[expand]).} +@racket[expand]). + +The inspector @racket[insp] is used to disarm @racket[expr-stx] and +sub-expressions before extracting idenrifiers. The default +@racket[insp] is the declaration-time inspector of the +@racketmodname[syntax/free-vars] module.} diff --git a/collects/tests/racket/namespac.rktl b/collects/tests/racket/namespac.rktl index 0ef5ccf4b7..168556d3ce 100644 --- a/collects/tests/racket/namespac.rktl +++ b/collects/tests/racket/namespac.rktl @@ -179,6 +179,10 @@ (eval '(begin-for-syntax 10)))) (test "1\n0\n2\n1\n" get-output-string s)) +(err/rt-test (variable-reference->module-declaration-inspector (#%variable-reference))) +(err/rt-test (variable-reference->module-declaration-inspector (#%variable-reference car))) +(test (void) eval `(module m racket/base (variable-reference->module-declaration-inspector (#%variable-reference)))) + ;; ---------------------------------------- (parameterize ([current-namespace (make-base-namespace)]) diff --git a/collects/trace/stacktrace.rkt b/collects/trace/stacktrace.rkt index e72a3f0af2..0acf14d95b 100644 --- a/collects/trace/stacktrace.rkt +++ b/collects/trace/stacktrace.rkt @@ -37,6 +37,9 @@ stx] [else-stx (general-top-level-expr-iterator stx)])) + + (define code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (general-top-level-expr-iterator stx) (kernel-syntax-case stx #f @@ -45,17 +48,17 @@ (cond [(= (length var-list) 1) #`(define-values (var ...) #,(expr-iterator #'expr (car var-list) - (current-code-inspector) + code-insp #f))] - [else #`(define-values (var ...) #,(expr-iterator #'expr #f (current-code-inspector) #f))]))] + [else #`(define-values (var ...) #,(expr-iterator #'expr #f code-insp #f))]))] [(define-syntaxes (var ...) expr) - #`(define-syntaxes (var ...) #,(expr-iterator #'expr #f (current-code-inspector) #t))] + #`(define-syntaxes (var ...) #,(expr-iterator #'expr #f code-insp #t))] [(begin . top-level-exprs) #`(begin #,@(map top-level-expr-iterator (syntax->list #'top-level-exprs)))] [(#%require . require-specs) stx] [else - (expr-iterator stx #f (current-code-inspector) #f)])) + (expr-iterator stx #f code-insp #f)])) (define (expr-iterator stx potential-name insp trans?-expr) (let* ([name-guess (or (syntax-property stx 'inferred-name) potential-name)] diff --git a/collects/typed-racket/base-env/base-env.rkt b/collects/typed-racket/base-env/base-env.rkt index 053cc3a220..f8c9835d29 100644 --- a/collects/typed-racket/base-env/base-env.rkt +++ b/collects/typed-racket/base-env/base-env.rkt @@ -1056,6 +1056,7 @@ [variable-reference->empty-namespace (-> -Variable-Reference -Namespace)] [variable-reference->namespace (-> -Variable-Reference -Namespace)] [variable-reference->resolved-module-path (-> -Variable-Reference (-opt -Resolved-Module-Path))] +[variable-reference->module-declaration-inspector (-> -Variable-Reference -Inspector)] [variable-reference->module-source (-> -Variable-Reference (Un Sym (-val #f) -Path))] [variable-reference->phase (-> -Variable-Reference -Nat)] [variable-reference-constant? (-> -Variable-Reference -Boolean)] diff --git a/collects/typed-racket/utils/disarm.rkt b/collects/typed-racket/utils/disarm.rkt index 3e31384cb6..ef1e0a9d80 100644 --- a/collects/typed-racket/utils/disarm.rkt +++ b/collects/typed-racket/utils/disarm.rkt @@ -22,5 +22,7 @@ (cons a d)))] [else v]))) -(define orig-insp (current-code-inspector)) +(define orig-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) + diff --git a/collects/typed/private/rewriter.rkt b/collects/typed/private/rewriter.rkt index f8540fd491..a65c10067c 100644 --- a/collects/typed/private/rewriter.rkt +++ b/collects/typed/private/rewriter.rkt @@ -2,7 +2,9 @@ (require (for-syntax syntax/parse racket/base syntax/id-table racket/dict unstable/debug)) -(define-for-syntax code-insp (current-code-inspector)) +(define-for-syntax code-insp + (variable-reference->module-declaration-inspector + (#%variable-reference))) (define-for-syntax (rewrite stx tbl from) (define (rw stx) diff --git a/collects/unstable/automata/re.rkt b/collects/unstable/automata/re.rkt index cc36e80b5d..d7c75439e9 100644 --- a/collects/unstable/automata/re.rkt +++ b/collects/unstable/automata/re.rkt @@ -12,9 +12,12 @@ (define-syntax-rule (define-re-transformer id lam) (define-syntax id (re-transformer lam))) +(define-for-syntax code-insp (variable-reference->module-declaration-inspector + (#%variable-reference))) + (define-for-syntax (re-expand stx) (syntax-parse - (syntax-disarm stx (current-code-inspector)) + (syntax-disarm stx code-insp) #:literals (complement seq union star epsilon nullset dseq rec unquote) [((~and op complement) lhs:expr) (quasisyntax/loc stx diff --git a/collects/web-server/lang/util.rkt b/collects/web-server/lang/util.rkt index 1278badbb6..148e891257 100644 --- a/collects/web-server/lang/util.rkt +++ b/collects/web-server/lang/util.rkt @@ -16,7 +16,9 @@ (define transformer? (make-parameter #f)) -(define code-insp (current-code-inspector)) +(define code-insp + (variable-reference->module-declaration-inspector + (#%variable-reference))) (define (disarm expr) (syntax-disarm expr code-insp)) diff --git a/doc/release-notes/racket/HISTORY.txt b/doc/release-notes/racket/HISTORY.txt index ab0a73de41..6277a1275f 100644 --- a/doc/release-notes/racket/HISTORY.txt +++ b/doc/release-notes/racket/HISTORY.txt @@ -1,8 +1,13 @@ +Version 5.1.3.10 +Added variable-reference->module-declare-inspector, which allows + a macro or other syntax tool to get the enclosing module's + declaration-time inspector for taint operations + Version 5.1.3.9 Add syntax-shift-phase-level errortrace: with-mark and make-st-mark now take a phase level -place:place* and dynamic place* forms now take in, out, and err named - arguments which become the standard io ports for the new place +racket/place: added place* and dynamic-place* to specify the input, + output, and error ports to use for a new place Version 5.1.3.8 Add syntax-transforming-module-expression? and @@ -20,9 +25,10 @@ compiler/zo-structs: removed def-for-syntax, added def-syntaxes Version 5.1.3.6 -unsafe/ffi:Changed cstructs to not be generative. -place:cpointers and file descriptors can now be sent across - place channels. +ffi/unsafe: changed define-cstruct to use an interned symbol tag, + which means that it is not generative +racket/place: cpointers, file-stream ports, and TCP ports can be + sent across place channels Version 5.1.3.4 Add support for the collection links file, including diff --git a/src/racket/src/cstartup.inc b/src/racket/src/cstartup.inc index acaae0a6ba..360bcc5977 100644 --- a/src/racket/src/cstartup.inc +++ b/src/racket/src/cstartup.inc @@ -1,412 +1,421 @@ { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,49,46,51,46,57,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,51,0,0,0,1,0,0,10,0,13,0,17, -0,22,0,29,0,42,0,49,0,54,0,59,0,63,0,70,0,73,0,82,0, -85,0,91,0,105,0,119,0,122,0,128,0,132,0,134,0,145,0,147,0,161, -0,168,0,190,0,192,0,206,0,17,1,46,1,57,1,68,1,93,1,126,1, -159,1,218,1,17,2,95,2,150,2,155,2,175,2,68,3,88,3,140,3,206, -3,95,4,237,4,34,5,45,5,124,5,0,0,83,7,0,0,69,35,37,109, -105,110,45,115,116,120,29,11,11,63,108,101,116,64,99,111,110,100,66,117,110, -108,101,115,115,72,112,97,114,97,109,101,116,101,114,105,122,101,66,100,101,102, -105,110,101,64,119,104,101,110,64,108,101,116,42,63,97,110,100,66,108,101,116, -114,101,99,62,111,114,68,104,101,114,101,45,115,116,120,29,11,11,65,113,117, -111,116,101,29,94,2,15,68,35,37,107,101,114,110,101,108,11,29,94,2,15, -68,35,37,112,97,114,97,109,122,11,62,105,102,65,98,101,103,105,110,63,115, -116,120,61,115,70,108,101,116,45,118,97,108,117,101,115,61,120,73,108,101,116, -114,101,99,45,118,97,108,117,101,115,66,108,97,109,98,100,97,1,20,112,97, -114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,61,118,73, -100,101,102,105,110,101,45,118,97,108,117,101,115,97,36,11,8,240,83,76,0, -0,95,159,2,17,36,36,159,2,16,36,36,159,2,16,36,36,16,20,2,3, -2,2,2,5,2,2,2,7,2,2,2,6,2,2,2,8,2,2,2,9,2, -2,2,10,2,2,2,4,2,2,2,11,2,2,2,12,2,2,97,37,11,8, -240,83,76,0,0,93,159,2,16,36,37,16,2,2,13,161,2,2,37,2,13, -2,2,2,13,96,11,11,8,240,83,76,0,0,16,0,96,38,11,8,240,83, -76,0,0,16,0,18,98,64,104,101,114,101,13,16,5,36,2,14,2,2,11, -11,8,32,8,31,8,30,8,29,27,248,22,155,4,195,249,22,148,4,80,158, -39,36,251,22,83,2,18,248,22,98,199,12,249,22,73,2,19,248,22,100,201, -27,248,22,155,4,195,249,22,148,4,80,158,39,36,251,22,83,2,18,248,22, -98,199,249,22,73,2,19,248,22,100,201,12,27,248,22,75,248,22,155,4,196, -28,248,22,81,193,20,14,159,37,36,37,28,248,22,81,248,22,75,194,248,22, -74,193,249,22,148,4,80,158,39,36,251,22,83,2,18,248,22,74,199,249,22, -73,2,10,248,22,75,201,11,18,100,10,13,16,5,36,2,14,2,2,11,11, -8,32,8,31,8,30,8,29,16,4,11,11,2,20,3,1,8,101,110,118,49, -52,55,51,57,16,4,11,11,2,21,3,1,8,101,110,118,49,52,55,52,48, -27,248,22,75,248,22,155,4,196,28,248,22,81,193,20,14,159,37,36,37,28, -248,22,81,248,22,75,194,248,22,74,193,249,22,148,4,80,158,39,36,250,22, -83,2,22,248,22,83,249,22,83,248,22,83,2,23,248,22,74,201,251,22,83, -2,18,2,23,2,23,249,22,73,2,12,248,22,75,204,18,100,11,13,16,5, -36,2,14,2,2,11,11,8,32,8,31,8,30,8,29,16,4,11,11,2,20, -3,1,8,101,110,118,49,52,55,52,50,16,4,11,11,2,21,3,1,8,101, -110,118,49,52,55,52,51,248,22,155,4,193,27,248,22,155,4,194,249,22,73, -248,22,83,248,22,74,196,248,22,75,195,27,248,22,75,248,22,155,4,23,197, -1,249,22,148,4,80,158,39,36,28,248,22,58,248,22,149,4,248,22,74,23, -198,2,27,249,22,2,32,0,88,163,8,36,37,43,11,9,222,33,40,248,22, -155,4,248,22,98,23,200,2,250,22,83,2,24,248,22,83,249,22,83,248,22, -83,248,22,74,23,204,2,250,22,84,2,25,249,22,2,22,74,23,204,2,248, -22,100,23,206,2,249,22,73,248,22,74,23,202,1,249,22,2,22,98,23,200, -1,250,22,84,2,22,249,22,2,32,0,88,163,8,36,37,47,11,9,222,33, -41,248,22,155,4,248,22,74,201,248,22,75,198,27,248,22,155,4,194,249,22, -73,248,22,83,248,22,74,196,248,22,75,195,27,248,22,75,248,22,155,4,23, -197,1,249,22,148,4,80,158,39,36,250,22,84,2,24,249,22,2,32,0,88, -163,8,36,37,47,11,9,222,33,43,248,22,155,4,248,22,74,201,248,22,75, -198,27,248,22,75,248,22,155,4,196,27,248,22,155,4,248,22,74,195,249,22, -148,4,80,158,40,36,28,248,22,81,195,250,22,84,2,22,9,248,22,75,199, -250,22,83,2,3,248,22,83,248,22,74,199,250,22,84,2,9,248,22,75,201, -248,22,75,202,27,248,22,75,248,22,155,4,23,197,1,27,249,22,1,22,87, -249,22,2,22,155,4,248,22,155,4,248,22,74,199,248,22,175,4,249,22,148, -4,80,158,41,36,251,22,83,1,22,119,105,116,104,45,99,111,110,116,105,110, -117,97,116,105,111,110,45,109,97,114,107,2,26,250,22,84,1,23,101,120,116, -101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,21, -95,1,27,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,45, -115,101,116,45,102,105,114,115,116,11,2,26,202,250,22,84,2,22,9,248,22, -75,204,27,248,22,75,248,22,155,4,196,28,248,22,81,193,20,14,159,37,36, -37,249,22,148,4,80,158,39,36,27,248,22,155,4,248,22,74,197,28,249,22, -141,9,62,61,62,248,22,149,4,248,22,98,196,250,22,83,2,22,248,22,83, -249,22,83,21,93,2,27,248,22,74,199,250,22,84,2,4,249,22,83,2,27, -249,22,83,248,22,107,203,2,27,248,22,75,202,251,22,83,2,18,28,249,22, -141,9,248,22,149,4,248,22,74,200,64,101,108,115,101,10,248,22,74,197,250, -22,84,2,22,9,248,22,75,200,249,22,73,2,4,248,22,75,202,99,13,16, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,48,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,51,0,0,0,1,0,0,10,0,13,0, +17,0,22,0,29,0,42,0,49,0,54,0,59,0,63,0,70,0,73,0,82, +0,85,0,91,0,105,0,119,0,122,0,128,0,132,0,134,0,145,0,147,0, +161,0,168,0,190,0,192,0,206,0,17,1,46,1,57,1,68,1,93,1,126, +1,159,1,218,1,17,2,95,2,150,2,155,2,175,2,68,3,88,3,140,3, +206,3,95,4,237,4,34,5,45,5,124,5,0,0,83,7,0,0,69,35,37, +109,105,110,45,115,116,120,29,11,11,63,108,101,116,64,99,111,110,100,66,117, +110,108,101,115,115,72,112,97,114,97,109,101,116,101,114,105,122,101,66,100,101, +102,105,110,101,64,119,104,101,110,64,108,101,116,42,63,97,110,100,66,108,101, +116,114,101,99,62,111,114,68,104,101,114,101,45,115,116,120,29,11,11,65,113, +117,111,116,101,29,94,2,15,68,35,37,107,101,114,110,101,108,11,29,94,2, +15,68,35,37,112,97,114,97,109,122,11,62,105,102,65,98,101,103,105,110,63, +115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,115,61,120,73,108,101, +116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,98,100,97,1,20,112, +97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,61,118, +73,100,101,102,105,110,101,45,118,97,108,117,101,115,97,36,11,8,240,83,76, +0,0,95,159,2,17,36,36,159,2,16,36,36,159,2,16,36,36,16,20,2, +3,2,2,2,5,2,2,2,7,2,2,2,6,2,2,2,8,2,2,2,9, +2,2,2,10,2,2,2,4,2,2,2,11,2,2,2,12,2,2,97,37,11, +8,240,83,76,0,0,93,159,2,16,36,37,16,2,2,13,161,2,2,37,2, +13,2,2,2,13,96,38,11,8,240,83,76,0,0,16,0,96,11,11,8,240, +83,76,0,0,16,0,18,98,64,104,101,114,101,13,16,5,36,2,14,2,2, +11,11,8,32,8,31,8,30,8,29,27,248,22,155,4,195,249,22,148,4,80, +158,39,36,251,22,83,2,18,248,22,98,199,12,249,22,73,2,19,248,22,100, +201,27,248,22,155,4,195,249,22,148,4,80,158,39,36,251,22,83,2,18,248, +22,98,199,249,22,73,2,19,248,22,100,201,12,27,248,22,75,248,22,155,4, +196,28,248,22,81,193,20,14,159,37,36,37,28,248,22,81,248,22,75,194,248, +22,74,193,249,22,148,4,80,158,39,36,251,22,83,2,18,248,22,74,199,249, +22,73,2,10,248,22,75,201,11,18,100,10,13,16,5,36,2,14,2,2,11, +11,8,32,8,31,8,30,8,29,16,4,11,11,2,20,3,1,8,101,110,118, +49,52,55,51,57,16,4,11,11,2,21,3,1,8,101,110,118,49,52,55,52, +48,27,248,22,75,248,22,155,4,196,28,248,22,81,193,20,14,159,37,36,37, +28,248,22,81,248,22,75,194,248,22,74,193,249,22,148,4,80,158,39,36,250, +22,83,2,22,248,22,83,249,22,83,248,22,83,2,23,248,22,74,201,251,22, +83,2,18,2,23,2,23,249,22,73,2,12,248,22,75,204,18,100,11,13,16, 5,36,2,14,2,2,11,11,8,32,8,31,8,30,8,29,16,4,11,11,2, -20,3,1,8,101,110,118,49,52,55,54,53,16,4,11,11,2,21,3,1,8, -101,110,118,49,52,55,54,54,18,158,94,10,64,118,111,105,100,8,48,27,248, -22,75,248,22,155,4,196,249,22,148,4,80,158,39,36,28,248,22,58,248,22, -149,4,248,22,74,197,250,22,83,2,28,248,22,83,248,22,74,199,248,22,98, -198,27,248,22,149,4,248,22,74,197,250,22,83,2,28,248,22,83,248,22,74, -197,250,22,84,2,25,248,22,75,199,248,22,75,202,159,36,20,112,159,36,16, -1,11,16,0,20,26,146,2,1,2,1,2,2,11,11,11,10,36,80,158,36, -36,20,112,159,36,16,0,16,0,38,39,36,16,0,36,16,0,36,11,11,11, -16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2, -12,16,10,11,11,11,11,11,11,11,11,11,11,16,10,2,3,2,4,2,5, -2,6,2,7,2,8,2,9,2,10,2,11,2,12,36,46,37,16,0,36,16, -1,2,13,37,11,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16,0, -16,0,16,0,36,36,16,11,16,5,11,20,15,16,2,20,14,159,36,36,37, -80,158,36,36,36,20,112,159,36,16,1,2,13,16,1,33,33,10,16,5,2, -5,88,163,8,36,37,53,37,9,223,0,33,34,36,20,112,159,36,16,1,2, -13,16,0,11,16,5,2,8,88,163,8,36,37,53,37,9,223,0,33,35,36, -20,112,159,36,16,1,2,13,16,0,11,16,5,2,10,88,163,8,36,37,53, -37,9,223,0,33,36,36,20,112,159,36,16,1,2,13,16,1,33,37,11,16, -5,2,12,88,163,8,36,37,56,37,9,223,0,33,38,36,20,112,159,36,16, -1,2,13,16,1,33,39,11,16,5,2,3,88,163,8,36,37,58,37,9,223, -0,33,42,36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,11,88,163, -8,36,37,53,37,9,223,0,33,44,36,20,112,159,36,16,1,2,13,16,0, -11,16,5,2,9,88,163,8,36,37,54,37,9,223,0,33,45,36,20,112,159, -36,16,1,2,13,16,0,11,16,5,2,6,88,163,8,36,37,56,37,9,223, -0,33,46,36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,4,88,163, -8,36,37,58,37,9,223,0,33,47,36,20,112,159,36,16,1,2,13,16,1, -33,49,11,16,5,2,7,88,163,8,36,37,54,37,9,223,0,33,50,36,20, -112,159,36,16,1,2,13,16,0,11,16,0,94,2,16,2,17,93,2,16,9, -9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 2018); +20,3,1,8,101,110,118,49,52,55,52,50,16,4,11,11,2,21,3,1,8, +101,110,118,49,52,55,52,51,248,22,155,4,193,27,248,22,155,4,194,249,22, +73,248,22,83,248,22,74,196,248,22,75,195,27,248,22,75,248,22,155,4,23, +197,1,249,22,148,4,80,158,39,36,28,248,22,58,248,22,149,4,248,22,74, +23,198,2,27,249,22,2,32,0,88,163,8,36,37,43,11,9,222,33,40,248, +22,155,4,248,22,98,23,200,2,250,22,83,2,24,248,22,83,249,22,83,248, +22,83,248,22,74,23,204,2,250,22,84,2,25,249,22,2,22,74,23,204,2, +248,22,100,23,206,2,249,22,73,248,22,74,23,202,1,249,22,2,22,98,23, +200,1,250,22,84,2,22,249,22,2,32,0,88,163,8,36,37,47,11,9,222, +33,41,248,22,155,4,248,22,74,201,248,22,75,198,27,248,22,155,4,194,249, +22,73,248,22,83,248,22,74,196,248,22,75,195,27,248,22,75,248,22,155,4, +23,197,1,249,22,148,4,80,158,39,36,250,22,84,2,24,249,22,2,32,0, +88,163,8,36,37,47,11,9,222,33,43,248,22,155,4,248,22,74,201,248,22, +75,198,27,248,22,75,248,22,155,4,196,27,248,22,155,4,248,22,74,195,249, +22,148,4,80,158,40,36,28,248,22,81,195,250,22,84,2,22,9,248,22,75, +199,250,22,83,2,3,248,22,83,248,22,74,199,250,22,84,2,9,248,22,75, +201,248,22,75,202,27,248,22,75,248,22,155,4,23,197,1,27,249,22,1,22, +87,249,22,2,22,155,4,248,22,155,4,248,22,74,199,248,22,175,4,249,22, +148,4,80,158,41,36,251,22,83,1,22,119,105,116,104,45,99,111,110,116,105, +110,117,97,116,105,111,110,45,109,97,114,107,2,26,250,22,84,1,23,101,120, +116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110, +21,95,1,27,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107, +45,115,101,116,45,102,105,114,115,116,11,2,26,202,250,22,84,2,22,9,248, +22,75,204,27,248,22,75,248,22,155,4,196,28,248,22,81,193,20,14,159,37, +36,37,249,22,148,4,80,158,39,36,27,248,22,155,4,248,22,74,197,28,249, +22,141,9,62,61,62,248,22,149,4,248,22,98,196,250,22,83,2,22,248,22, +83,249,22,83,21,93,2,27,248,22,74,199,250,22,84,2,4,249,22,83,2, +27,249,22,83,248,22,107,203,2,27,248,22,75,202,251,22,83,2,18,28,249, +22,141,9,248,22,149,4,248,22,74,200,64,101,108,115,101,10,248,22,74,197, +250,22,84,2,22,9,248,22,75,200,249,22,73,2,4,248,22,75,202,99,13, +16,5,36,2,14,2,2,11,11,8,32,8,31,8,30,8,29,16,4,11,11, +2,20,3,1,8,101,110,118,49,52,55,54,53,16,4,11,11,2,21,3,1, +8,101,110,118,49,52,55,54,54,18,158,94,10,64,118,111,105,100,8,48,27, +248,22,75,248,22,155,4,196,249,22,148,4,80,158,39,36,28,248,22,58,248, +22,149,4,248,22,74,197,250,22,83,2,28,248,22,83,248,22,74,199,248,22, +98,198,27,248,22,149,4,248,22,74,197,250,22,83,2,28,248,22,83,248,22, +74,197,250,22,84,2,25,248,22,75,199,248,22,75,202,159,36,20,112,159,36, +16,1,11,16,0,20,26,146,2,1,2,1,2,2,11,11,11,10,36,80,158, +36,36,20,112,159,36,16,0,16,0,38,39,36,16,0,36,16,0,36,11,11, +11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11, +2,12,16,10,11,11,11,11,11,11,11,11,11,11,16,10,2,3,2,4,2, +5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,36,46,37,16,0,36, +16,1,2,13,37,11,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16, +0,16,0,16,0,36,36,16,11,16,5,11,20,15,16,2,20,14,159,36,36, +37,80,158,36,36,36,20,112,159,36,16,1,2,13,16,1,33,33,10,16,5, +2,5,88,163,8,36,37,53,37,9,223,0,33,34,36,20,112,159,36,16,1, +2,13,16,0,11,16,5,2,8,88,163,8,36,37,53,37,9,223,0,33,35, +36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,10,88,163,8,36,37, +53,37,9,223,0,33,36,36,20,112,159,36,16,1,2,13,16,1,33,37,11, +16,5,2,12,88,163,8,36,37,56,37,9,223,0,33,38,36,20,112,159,36, +16,1,2,13,16,1,33,39,11,16,5,2,3,88,163,8,36,37,58,37,9, +223,0,33,42,36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,11,88, +163,8,36,37,53,37,9,223,0,33,44,36,20,112,159,36,16,1,2,13,16, +0,11,16,5,2,9,88,163,8,36,37,54,37,9,223,0,33,45,36,20,112, +159,36,16,1,2,13,16,0,11,16,5,2,6,88,163,8,36,37,56,37,9, +223,0,33,46,36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,4,88, +163,8,36,37,58,37,9,223,0,33,47,36,20,112,159,36,16,1,2,13,16, +1,33,49,11,16,5,2,7,88,163,8,36,37,54,37,9,223,0,33,50,36, +20,112,159,36,16,1,2,13,16,0,11,16,0,94,2,16,2,17,93,2,16, +9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 2019); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,49,46,51,46,57,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,109,0,0,0,1,0,0,8,0,21,0,26, -0,43,0,65,0,94,0,109,0,127,0,143,0,157,0,179,0,195,0,212,0, -234,0,245,0,251,0,4,1,11,1,18,1,30,1,46,1,70,1,102,1,120, -1,140,1,156,1,174,1,205,1,219,1,224,1,234,1,242,1,251,1,253,1, -255,1,27,2,59,2,72,2,78,2,123,2,127,2,172,2,196,2,235,2,249, -2,252,2,255,2,9,3,20,3,187,3,31,5,149,5,11,6,52,6,125,7, -148,7,165,7,113,9,216,9,230,9,134,10,63,12,72,12,81,12,95,12,105, -12,146,13,248,13,78,14,164,14,8,15,92,15,106,15,220,15,48,16,62,16, -15,17,23,17,129,17,192,17,194,17,50,18,110,18,115,18,238,18,249,18,129, -19,139,19,62,21,84,21,93,21,86,22,104,22,118,22,77,23,96,23,34,26, -154,30,68,31,213,31,198,32,180,33,187,33,12,34,95,34,180,34,206,34,79, -35,0,0,177,39,0,0,67,35,37,117,116,105,108,115,72,112,97,116,104,45, -115,116,114,105,110,103,63,64,98,115,98,115,76,110,111,114,109,97,108,45,99, -97,115,101,45,112,97,116,104,1,20,102,105,110,100,45,101,120,101,99,117,116, -97,98,108,101,45,112,97,116,104,1,27,112,97,116,104,45,108,105,115,116,45, -115,116,114,105,110,103,45,62,112,97,116,104,45,108,105,115,116,74,45,99,104, -101,99,107,45,114,101,108,112,97,116,104,77,45,99,104,101,99,107,45,99,111, -108,108,101,99,116,105,111,110,75,99,111,108,108,101,99,116,105,111,110,45,112, -97,116,104,73,102,105,110,100,45,99,111,108,45,102,105,108,101,1,20,99,111, -108,108,101,99,116,105,111,110,45,102,105,108,101,45,112,97,116,104,75,117,115, -101,114,45,108,105,110,107,115,45,112,97,116,104,76,117,115,101,114,45,108,105, -110,107,115,45,99,97,99,104,101,1,20,117,115,101,114,45,108,105,110,107,115, -45,116,105,109,101,115,116,97,109,112,70,108,105,110,107,115,45,112,97,116,104, -65,113,117,111,116,101,68,35,37,112,97,114,97,109,122,29,94,2,16,2,17, -11,29,94,2,16,2,17,11,71,108,105,110,107,115,45,99,97,99,104,101,75, -108,105,110,107,115,45,116,105,109,101,115,116,97,109,112,1,22,103,101,116,45, -108,105,110,107,101,100,45,99,111,108,108,101,99,116,105,111,110,115,1,30,110, -111,114,109,97,108,105,122,101,45,99,111,108,108,101,99,116,105,111,110,45,114, -101,102,101,114,101,110,99,101,77,99,104,101,99,107,45,115,117,102,102,105,120, -45,99,97,108,108,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117, -102,102,105,120,75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,77, -108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,1,29,102,105, -110,100,45,108,105,98,114,97,114,121,45,99,111,108,108,101,99,116,105,111,110, -45,112,97,116,104,115,73,101,109,98,101,100,100,101,100,45,108,111,97,100,64, -108,111,111,112,69,101,120,101,99,45,102,105,108,101,67,119,105,110,100,111,119, -115,68,114,101,108,97,116,105,118,101,5,0,5,0,6,25,25,112,97,116,104, -32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103, -6,29,29,126,97,58,32,105,110,118,97,108,105,100,32,114,101,108,97,116,105, -118,101,32,112,97,116,104,58,32,126,115,72,99,111,108,108,101,99,116,115,45, -100,105,114,65,101,114,114,111,114,6,42,42,101,114,114,111,114,32,114,101,97, -100,105,110,103,32,99,111,108,108,101,99,116,105,111,110,32,108,105,110,107,115, -32,102,105,108,101,32,126,115,58,32,126,97,6,1,1,47,6,42,42,112,97, -116,104,32,40,102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,32,111, -114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,6,21, -21,115,116,114,105,110,103,32,111,114,32,98,121,116,101,32,115,116,114,105,110, -103,6,36,36,99,97,110,110,111,116,32,97,100,100,32,97,32,115,117,102,102, -105,120,32,116,111,32,97,32,114,111,111,116,32,112,97,116,104,58,32,6,11, -11,80,76,84,67,79,76,76,69,67,84,83,6,0,0,6,0,0,69,97,100, -100,111,110,45,100,105,114,6,8,8,99,111,108,108,101,99,116,115,27,20,13, -159,80,159,37,51,37,250,80,159,40,52,37,249,22,27,11,80,159,42,51,37, -22,187,13,10,248,22,191,5,23,196,2,28,248,22,190,6,23,194,2,12,86, -94,248,22,149,9,23,194,1,27,20,13,159,80,159,38,51,37,250,80,159,41, -52,37,249,22,27,11,80,159,43,51,37,22,187,13,10,248,22,191,5,23,197, -2,28,248,22,190,6,23,194,2,12,86,94,248,22,149,9,23,194,1,27,20, -13,159,80,159,39,51,37,250,80,159,42,52,37,249,22,27,11,80,159,44,51, -37,22,187,13,10,248,22,191,5,23,198,2,28,248,22,190,6,23,194,2,12, -86,94,248,22,149,9,23,194,1,248,80,159,40,8,31,39,197,28,248,22,81, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,48,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,109,0,0,0,1,0,0,8,0,21,0, +26,0,43,0,65,0,94,0,109,0,127,0,143,0,157,0,179,0,195,0,212, +0,234,0,245,0,251,0,4,1,11,1,18,1,30,1,46,1,70,1,102,1, +120,1,140,1,156,1,174,1,205,1,219,1,224,1,234,1,242,1,251,1,253, +1,255,1,27,2,59,2,72,2,78,2,123,2,127,2,172,2,196,2,235,2, +249,2,252,2,255,2,9,3,20,3,187,3,31,5,149,5,11,6,52,6,125, +7,148,7,165,7,113,9,216,9,230,9,134,10,63,12,72,12,81,12,95,12, +105,12,146,13,248,13,78,14,164,14,8,15,92,15,106,15,220,15,48,16,62, +16,15,17,23,17,129,17,192,17,194,17,50,18,110,18,115,18,238,18,249,18, +129,19,139,19,62,21,84,21,93,21,86,22,104,22,118,22,77,23,96,23,34, +26,154,30,68,31,213,31,198,32,180,33,187,33,12,34,95,34,180,34,206,34, +79,35,0,0,177,39,0,0,67,35,37,117,116,105,108,115,72,112,97,116,104, +45,115,116,114,105,110,103,63,64,98,115,98,115,76,110,111,114,109,97,108,45, +99,97,115,101,45,112,97,116,104,1,20,102,105,110,100,45,101,120,101,99,117, +116,97,98,108,101,45,112,97,116,104,1,27,112,97,116,104,45,108,105,115,116, +45,115,116,114,105,110,103,45,62,112,97,116,104,45,108,105,115,116,74,45,99, +104,101,99,107,45,114,101,108,112,97,116,104,77,45,99,104,101,99,107,45,99, +111,108,108,101,99,116,105,111,110,75,99,111,108,108,101,99,116,105,111,110,45, +112,97,116,104,73,102,105,110,100,45,99,111,108,45,102,105,108,101,1,20,99, +111,108,108,101,99,116,105,111,110,45,102,105,108,101,45,112,97,116,104,75,117, +115,101,114,45,108,105,110,107,115,45,112,97,116,104,76,117,115,101,114,45,108, +105,110,107,115,45,99,97,99,104,101,1,20,117,115,101,114,45,108,105,110,107, +115,45,116,105,109,101,115,116,97,109,112,70,108,105,110,107,115,45,112,97,116, +104,65,113,117,111,116,101,68,35,37,112,97,114,97,109,122,29,94,2,16,2, +17,11,29,94,2,16,2,17,11,71,108,105,110,107,115,45,99,97,99,104,101, +75,108,105,110,107,115,45,116,105,109,101,115,116,97,109,112,1,22,103,101,116, +45,108,105,110,107,101,100,45,99,111,108,108,101,99,116,105,111,110,115,1,30, +110,111,114,109,97,108,105,122,101,45,99,111,108,108,101,99,116,105,111,110,45, +114,101,102,101,114,101,110,99,101,77,99,104,101,99,107,45,115,117,102,102,105, +120,45,99,97,108,108,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115, +117,102,102,105,120,75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120, +77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,1,29,102, +105,110,100,45,108,105,98,114,97,114,121,45,99,111,108,108,101,99,116,105,111, +110,45,112,97,116,104,115,73,101,109,98,101,100,100,101,100,45,108,111,97,100, +64,108,111,111,112,69,101,120,101,99,45,102,105,108,101,67,119,105,110,100,111, +119,115,68,114,101,108,97,116,105,118,101,5,0,5,0,6,25,25,112,97,116, +104,32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110, +103,6,29,29,126,97,58,32,105,110,118,97,108,105,100,32,114,101,108,97,116, +105,118,101,32,112,97,116,104,58,32,126,115,72,99,111,108,108,101,99,116,115, +45,100,105,114,65,101,114,114,111,114,6,42,42,101,114,114,111,114,32,114,101, +97,100,105,110,103,32,99,111,108,108,101,99,116,105,111,110,32,108,105,110,107, +115,32,102,105,108,101,32,126,115,58,32,126,97,6,1,1,47,6,42,42,112, +97,116,104,32,40,102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,32, +111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,6, +21,21,115,116,114,105,110,103,32,111,114,32,98,121,116,101,32,115,116,114,105, +110,103,6,36,36,99,97,110,110,111,116,32,97,100,100,32,97,32,115,117,102, +102,105,120,32,116,111,32,97,32,114,111,111,116,32,112,97,116,104,58,32,6, +11,11,80,76,84,67,79,76,76,69,67,84,83,6,0,0,6,0,0,69,97, +100,100,111,110,45,100,105,114,6,8,8,99,111,108,108,101,99,116,115,27,20, +13,159,80,159,37,51,37,250,80,159,40,52,37,249,22,27,11,80,159,42,51, +37,22,187,13,10,248,22,191,5,23,196,2,28,248,22,190,6,23,194,2,12, +86,94,248,22,149,9,23,194,1,27,20,13,159,80,159,38,51,37,250,80,159, +41,52,37,249,22,27,11,80,159,43,51,37,22,187,13,10,248,22,191,5,23, +197,2,28,248,22,190,6,23,194,2,12,86,94,248,22,149,9,23,194,1,27, +20,13,159,80,159,39,51,37,250,80,159,42,52,37,249,22,27,11,80,159,44, +51,37,22,187,13,10,248,22,191,5,23,198,2,28,248,22,190,6,23,194,2, +12,86,94,248,22,149,9,23,194,1,248,80,159,40,8,31,39,197,28,248,22, +81,23,195,2,9,27,248,22,74,23,196,2,27,28,248,22,173,14,23,195,2, +23,194,1,28,248,22,172,14,23,195,2,249,22,174,14,23,196,1,250,80,159, +43,39,39,248,22,189,14,2,31,11,10,250,80,159,41,39,39,248,22,189,14, +2,31,23,197,1,10,28,23,193,2,249,22,73,248,22,176,14,249,22,174,14, +23,198,1,247,22,190,14,27,248,22,75,23,200,1,28,248,22,81,23,194,2, +9,27,248,22,74,23,195,2,27,28,248,22,173,14,23,195,2,23,194,1,28, +248,22,172,14,23,195,2,249,22,174,14,23,196,1,250,80,159,48,39,39,248, +22,189,14,2,31,11,10,250,80,159,46,39,39,248,22,189,14,2,31,23,197, +1,10,28,23,193,2,249,22,73,248,22,176,14,249,22,174,14,23,198,1,247, +22,190,14,248,80,159,46,8,30,39,248,22,75,23,199,1,86,94,23,193,1, +248,80,159,44,8,30,39,248,22,75,23,197,1,86,94,23,193,1,27,248,22, +75,23,198,1,28,248,22,81,23,194,2,9,27,248,22,74,23,195,2,27,28, +248,22,173,14,23,195,2,23,194,1,28,248,22,172,14,23,195,2,249,22,174, +14,23,196,1,250,80,159,46,39,39,248,22,189,14,2,31,11,10,250,80,159, +44,39,39,248,22,189,14,2,31,23,197,1,10,28,23,193,2,249,22,73,248, +22,176,14,249,22,174,14,23,198,1,247,22,190,14,248,80,159,44,8,30,39, +248,22,75,23,199,1,248,80,159,42,8,30,39,248,22,75,196,28,248,22,81, 23,195,2,9,27,248,22,74,23,196,2,27,28,248,22,173,14,23,195,2,23, 194,1,28,248,22,172,14,23,195,2,249,22,174,14,23,196,1,250,80,159,43, 39,39,248,22,189,14,2,31,11,10,250,80,159,41,39,39,248,22,189,14,2, 31,23,197,1,10,28,23,193,2,249,22,73,248,22,176,14,249,22,174,14,23, -198,1,247,22,190,14,27,248,22,75,23,200,1,28,248,22,81,23,194,2,9, -27,248,22,74,23,195,2,27,28,248,22,173,14,23,195,2,23,194,1,28,248, -22,172,14,23,195,2,249,22,174,14,23,196,1,250,80,159,48,39,39,248,22, -189,14,2,31,11,10,250,80,159,46,39,39,248,22,189,14,2,31,23,197,1, -10,28,23,193,2,249,22,73,248,22,176,14,249,22,174,14,23,198,1,247,22, -190,14,248,80,159,46,8,30,39,248,22,75,23,199,1,86,94,23,193,1,248, -80,159,44,8,30,39,248,22,75,23,197,1,86,94,23,193,1,27,248,22,75, -23,198,1,28,248,22,81,23,194,2,9,27,248,22,74,23,195,2,27,28,248, -22,173,14,23,195,2,23,194,1,28,248,22,172,14,23,195,2,249,22,174,14, -23,196,1,250,80,159,46,39,39,248,22,189,14,2,31,11,10,250,80,159,44, -39,39,248,22,189,14,2,31,23,197,1,10,28,23,193,2,249,22,73,248,22, -176,14,249,22,174,14,23,198,1,247,22,190,14,248,80,159,44,8,30,39,248, -22,75,23,199,1,248,80,159,42,8,30,39,248,22,75,196,28,248,22,81,23, -195,2,9,27,248,22,74,23,196,2,27,28,248,22,173,14,23,195,2,23,194, -1,28,248,22,172,14,23,195,2,249,22,174,14,23,196,1,250,80,159,43,39, -39,248,22,189,14,2,31,11,10,250,80,159,41,39,39,248,22,189,14,2,31, -23,197,1,10,28,23,193,2,249,22,73,248,22,176,14,249,22,174,14,23,198, -1,247,22,190,14,248,80,159,41,8,29,39,248,22,75,23,200,1,248,80,159, -39,8,29,39,248,22,75,197,28,248,22,81,23,195,2,9,27,248,22,74,23, -196,2,27,28,248,22,173,14,23,195,2,23,194,1,28,248,22,172,14,23,195, -2,249,22,174,14,23,196,1,250,80,159,43,39,39,248,22,189,14,2,31,11, -10,250,80,159,41,39,39,248,22,189,14,2,31,23,197,1,10,28,23,193,2, -249,22,73,248,22,176,14,249,22,174,14,23,198,1,247,22,190,14,248,80,159, -41,8,28,39,248,22,75,23,200,1,248,80,159,39,8,28,39,248,22,75,197, -27,248,22,149,14,23,195,2,28,23,193,2,192,86,94,23,193,1,28,248,22, -131,7,23,195,2,27,248,22,171,14,195,28,192,192,248,22,172,14,195,11,86, -94,28,28,248,22,150,14,23,195,2,10,28,248,22,149,14,23,195,2,10,28, -248,22,131,7,23,195,2,28,248,22,171,14,23,195,2,10,248,22,172,14,23, -195,2,11,12,250,22,177,9,76,110,111,114,109,97,108,45,112,97,116,104,45, -99,97,115,101,6,42,42,112,97,116,104,32,40,102,111,114,32,97,110,121,32, -115,121,115,116,101,109,41,32,111,114,32,118,97,108,105,100,45,112,97,116,104, -32,115,116,114,105,110,103,23,197,2,28,28,248,22,150,14,23,195,2,249,22, -141,9,248,22,151,14,23,197,2,2,32,249,22,141,9,247,22,153,8,2,32, -27,28,248,22,131,7,23,196,2,23,195,2,248,22,143,8,248,22,154,14,23, -197,2,28,249,22,141,15,0,21,35,114,120,34,94,91,92,92,93,91,92,92, -93,91,63,93,91,92,92,93,34,23,195,2,28,248,22,131,7,195,248,22,157, -14,195,194,27,248,22,170,7,23,195,1,249,22,158,14,248,22,146,8,250,22, -149,15,0,6,35,114,120,34,47,34,28,249,22,141,15,0,22,35,114,120,34, -91,47,92,92,93,91,46,32,93,43,91,47,92,92,93,42,36,34,23,201,2, -23,199,1,250,22,149,15,0,19,35,114,120,34,91,32,46,93,43,40,91,47, -92,92,93,42,41,36,34,23,202,1,6,2,2,92,49,80,159,44,37,38,2, -32,28,248,22,131,7,194,248,22,157,14,194,193,32,56,88,163,8,36,39,53, -11,70,102,111,117,110,100,45,101,120,101,99,222,33,59,32,57,88,163,8,36, -40,58,11,64,110,101,120,116,222,33,58,27,248,22,175,14,23,196,2,28,249, -22,143,9,23,195,2,23,197,1,11,28,248,22,171,14,23,194,2,27,249,22, -167,14,23,197,1,23,196,1,28,23,197,2,90,159,39,11,89,161,39,36,11, -248,22,170,14,23,197,2,86,95,23,195,1,23,194,1,27,28,23,202,2,27, -248,22,175,14,23,199,2,28,249,22,143,9,23,195,2,23,200,2,11,28,248, -22,171,14,23,194,2,250,2,56,23,205,2,23,206,2,249,22,167,14,23,200, -2,23,198,1,250,2,56,23,205,2,23,206,2,23,196,1,11,28,23,193,2, -192,86,94,23,193,1,27,28,248,22,149,14,23,196,2,27,249,22,167,14,23, -198,2,23,205,2,28,28,248,22,162,14,193,10,248,22,161,14,193,192,11,11, -28,23,193,2,192,86,94,23,193,1,28,23,203,2,11,27,248,22,175,14,23, -200,2,28,249,22,143,9,23,195,2,23,201,1,11,28,248,22,171,14,23,194, -2,250,2,56,23,206,1,23,207,1,249,22,167,14,23,201,1,23,198,1,250, -2,56,205,206,195,192,86,94,23,194,1,28,23,196,2,90,159,39,11,89,161, -39,36,11,248,22,170,14,23,197,2,86,95,23,195,1,23,194,1,27,28,23, -201,2,27,248,22,175,14,23,199,2,28,249,22,143,9,23,195,2,23,200,2, -11,28,248,22,171,14,23,194,2,250,2,56,23,204,2,23,205,2,249,22,167, -14,23,200,2,23,198,1,250,2,56,23,204,2,23,205,2,23,196,1,11,28, -23,193,2,192,86,94,23,193,1,27,28,248,22,149,14,23,196,2,27,249,22, -167,14,23,198,2,23,204,2,28,28,248,22,162,14,193,10,248,22,161,14,193, -192,11,11,28,23,193,2,192,86,94,23,193,1,28,23,202,2,11,27,248,22, -175,14,23,200,2,28,249,22,143,9,23,195,2,23,201,1,11,28,248,22,171, -14,23,194,2,250,2,56,23,205,1,23,206,1,249,22,167,14,23,201,1,23, -198,1,250,2,56,204,205,195,192,28,23,193,2,90,159,39,11,89,161,39,36, -11,248,22,170,14,23,199,2,86,95,23,195,1,23,194,1,27,28,23,198,2, -251,2,57,23,198,2,23,203,2,23,201,2,23,202,2,11,28,23,193,2,192, -86,94,23,193,1,27,28,248,22,149,14,195,27,249,22,167,14,197,200,28,28, -248,22,162,14,193,10,248,22,161,14,193,192,11,11,28,192,192,28,198,11,251, -2,57,198,203,201,202,194,32,60,88,163,8,36,40,58,11,2,30,222,33,61, -28,248,22,81,23,197,2,11,27,248,22,174,14,248,22,74,23,199,2,27,249, -22,167,14,23,196,1,23,197,2,28,248,22,161,14,23,194,2,250,2,56,198, -199,195,86,94,23,193,1,27,248,22,75,23,200,1,28,248,22,81,23,194,2, -11,27,248,22,174,14,248,22,74,23,196,2,27,249,22,167,14,23,196,1,23, -200,2,28,248,22,161,14,23,194,2,250,2,56,201,202,195,86,94,23,193,1, -27,248,22,75,23,197,1,28,248,22,81,23,194,2,11,27,248,22,174,14,248, -22,74,195,27,249,22,167,14,23,196,1,202,28,248,22,161,14,193,250,2,56, -204,205,195,251,2,60,204,205,206,248,22,75,199,86,95,28,28,248,22,149,14, -23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,171,14,23,195,2,10, -248,22,172,14,23,195,2,11,12,250,22,177,9,2,5,6,25,25,112,97,116, -104,32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108, -41,23,197,2,28,28,23,195,2,28,28,248,22,149,14,23,196,2,10,28,248, -22,131,7,23,196,2,28,248,22,171,14,23,196,2,10,248,22,172,14,23,196, -2,11,248,22,171,14,23,196,2,11,10,12,250,22,177,9,2,5,6,29,29, -35,102,32,111,114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111, -114,32,115,116,114,105,110,103,23,198,2,28,28,248,22,171,14,23,195,2,90, -159,39,11,89,161,39,36,11,248,22,170,14,23,198,2,249,22,141,9,194,2, -33,11,27,248,22,151,8,6,4,4,80,65,84,72,27,28,23,194,2,27,249, -80,158,41,40,23,197,1,9,28,249,22,141,9,247,22,153,8,2,32,249,22, -73,248,22,158,14,5,1,46,194,192,86,94,23,194,1,9,28,248,22,81,23, -194,2,11,27,248,22,174,14,248,22,74,23,196,2,27,249,22,167,14,23,196, -1,23,200,2,28,248,22,161,14,23,194,2,250,2,56,201,202,195,86,94,23, -193,1,27,248,22,75,23,197,1,28,248,22,81,23,194,2,11,27,248,22,174, -14,248,22,74,23,196,2,27,249,22,167,14,23,196,1,23,203,2,28,248,22, -161,14,23,194,2,250,2,56,204,205,195,86,94,23,193,1,27,248,22,75,23, -197,1,28,248,22,81,23,194,2,11,27,248,22,174,14,248,22,74,195,27,249, -22,167,14,23,196,1,205,28,248,22,161,14,193,250,2,56,23,15,23,16,195, -251,2,60,23,15,23,16,23,17,248,22,75,199,27,248,22,174,14,23,196,1, -28,248,22,161,14,193,250,2,56,198,199,195,11,250,80,159,39,39,39,196,197, -11,250,80,159,39,39,39,196,11,11,32,65,88,163,8,36,39,57,11,2,30, -222,33,67,0,8,35,114,120,35,34,92,34,34,27,249,22,137,15,23,197,2, -23,198,2,28,23,193,2,86,94,23,196,1,27,248,22,98,23,195,2,27,27, -248,22,107,23,197,1,27,249,22,137,15,23,201,2,23,196,2,28,23,193,2, -86,94,23,194,1,27,248,22,98,23,195,2,27,250,2,65,23,203,2,23,204, -1,248,22,107,23,199,1,28,249,22,128,8,23,196,2,2,34,249,22,87,23, -202,2,194,249,22,73,248,22,158,14,28,249,22,141,9,247,22,153,8,2,32, -250,22,149,15,2,66,23,200,1,2,35,23,197,1,194,86,95,23,199,1,23, -193,1,28,249,22,128,8,23,196,2,2,34,249,22,87,23,200,2,9,249,22, -73,248,22,158,14,28,249,22,141,9,247,22,153,8,2,32,250,22,149,15,2, -66,23,200,1,2,35,23,197,1,9,28,249,22,128,8,23,196,2,2,34,249, -22,87,197,194,86,94,23,196,1,249,22,73,248,22,158,14,28,249,22,141,9, -247,22,153,8,2,32,250,22,149,15,2,66,23,200,1,2,35,23,197,1,194, -86,94,23,193,1,28,249,22,128,8,23,198,2,2,34,249,22,87,195,9,86, -94,23,194,1,249,22,73,248,22,158,14,28,249,22,141,9,247,22,153,8,2, -32,250,22,149,15,2,66,23,202,1,2,35,23,199,1,9,86,95,28,28,248, -22,184,7,194,10,248,22,131,7,194,12,250,22,177,9,2,6,6,21,21,98, -121,116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196, -28,28,248,22,82,195,249,22,4,22,149,14,196,11,12,250,22,177,9,2,6, -6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,65,197, -195,28,248,22,131,7,197,248,22,145,8,197,196,86,94,28,28,248,22,149,14, -23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,171,14,23,195,2,10, -248,22,172,14,23,195,2,11,12,250,22,177,9,23,196,2,2,36,23,197,2, -28,248,22,171,14,23,195,2,12,248,22,163,12,249,22,169,11,248,22,160,7, -250,22,179,7,2,37,23,200,1,23,201,1,247,22,23,86,94,28,28,248,22, -149,14,23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,171,14,23,195, -2,10,248,22,172,14,23,195,2,11,12,250,22,177,9,23,196,2,2,36,23, -197,2,28,248,22,171,14,23,195,2,12,248,22,163,12,249,22,169,11,248,22, -160,7,250,22,179,7,2,37,23,200,1,23,201,1,247,22,23,86,94,86,94, -28,28,248,22,149,14,23,195,2,10,28,248,22,131,7,23,195,2,28,248,22, -171,14,23,195,2,10,248,22,172,14,23,195,2,11,12,250,22,177,9,195,2, -36,23,197,2,28,248,22,171,14,23,195,2,12,248,22,163,12,249,22,169,11, -248,22,160,7,250,22,179,7,2,37,199,23,201,1,247,22,23,249,22,3,88, -163,8,36,37,50,11,9,223,2,33,70,196,86,94,28,28,248,22,149,14,23, -194,2,10,28,248,22,131,7,23,194,2,28,248,22,171,14,23,194,2,10,248, -22,172,14,23,194,2,11,12,250,22,177,9,2,9,2,36,23,196,2,28,248, -22,171,14,23,194,2,12,248,22,163,12,249,22,169,11,248,22,160,7,250,22, -179,7,2,37,2,9,23,200,1,247,22,23,248,22,163,12,249,22,138,12,23, -196,1,247,22,23,86,94,86,94,86,94,28,28,248,22,149,14,194,10,28,248, -22,131,7,194,28,248,22,171,14,194,10,248,22,172,14,194,11,12,250,22,177, -9,2,9,2,36,196,28,248,22,171,14,194,12,248,22,163,12,249,22,169,11, -248,22,160,7,250,22,179,7,2,37,2,9,200,247,22,23,249,22,3,32,0, -88,163,8,36,37,49,11,9,222,33,72,196,252,80,158,41,44,2,9,32,0, -88,163,8,36,37,45,11,9,222,33,73,198,199,11,86,94,28,28,248,22,149, -14,23,194,2,10,28,248,22,131,7,23,194,2,28,248,22,171,14,23,194,2, -10,248,22,172,14,23,194,2,11,12,250,22,177,9,2,11,2,36,23,196,2, -28,248,22,171,14,23,194,2,12,248,22,163,12,249,22,169,11,248,22,160,7, -250,22,179,7,2,37,2,11,23,200,1,247,22,23,248,22,163,12,249,22,138, -12,23,196,1,247,22,23,86,95,86,94,28,28,248,22,149,14,194,10,28,248, -22,131,7,194,28,248,22,171,14,194,10,248,22,172,14,194,11,12,250,22,177, -9,2,11,2,36,196,28,248,22,171,14,194,12,248,22,163,12,249,22,169,11, -248,22,160,7,250,22,179,7,2,37,2,11,200,247,22,23,86,94,86,94,28, -28,248,22,149,14,23,196,2,10,28,248,22,131,7,23,196,2,28,248,22,171, -14,23,196,2,10,248,22,172,14,23,196,2,11,12,250,22,177,9,2,11,2, -36,23,198,2,28,248,22,171,14,23,196,2,12,248,22,163,12,249,22,169,11, -248,22,160,7,250,22,179,7,2,37,2,11,23,202,2,247,22,23,249,22,3, -32,0,88,163,8,36,37,49,11,9,222,33,75,23,198,2,249,22,167,14,252, -80,158,43,44,2,11,32,0,88,163,8,36,37,45,11,9,222,33,76,23,202, -1,23,203,1,200,195,0,6,45,105,110,102,46,48,27,248,22,189,14,2,38, -27,28,248,22,172,14,23,195,2,193,20,13,159,80,159,38,51,37,250,80,159, -41,52,37,249,22,27,11,80,159,43,51,37,22,190,14,248,22,189,14,68,111, -114,105,103,45,100,105,114,27,248,22,189,14,2,31,250,80,159,42,39,39,23, -196,1,23,198,1,11,28,192,250,22,167,14,195,6,6,6,99,111,110,102,105, -103,6,10,10,108,105,110,107,115,46,114,107,116,100,11,86,94,27,247,22,132, -10,28,249,22,189,9,23,195,2,2,39,251,22,128,10,23,197,1,2,39,250, -22,179,7,2,40,28,23,202,1,80,159,46,46,38,80,159,46,49,38,248,22, -161,11,23,205,1,247,22,23,12,248,193,247,22,133,2,2,78,86,95,27,247, -22,132,10,28,249,22,189,9,23,195,2,2,39,251,22,128,10,23,197,1,2, -39,250,22,179,7,2,40,28,202,80,159,47,46,38,80,159,47,49,38,248,22, -161,11,23,206,1,247,22,23,12,28,192,28,194,86,94,20,18,159,11,80,158, -39,47,247,22,133,2,20,18,159,11,80,158,39,48,192,86,94,20,18,159,11, -80,158,39,53,247,22,133,2,20,18,159,11,80,158,39,54,192,12,248,194,247, -22,133,2,20,20,94,248,22,191,5,23,194,2,28,248,22,190,6,248,22,191, -5,23,195,1,12,248,22,174,9,6,30,30,101,120,112,101,99,116,101,100,32, -97,32,115,105,110,103,108,101,32,83,45,101,120,112,114,101,115,115,105,111,110, -248,22,179,5,193,28,248,22,82,23,194,2,28,28,249,22,184,3,38,248,22, -86,23,196,2,10,249,22,184,3,39,248,22,86,23,196,2,28,28,248,22,131, -7,248,22,74,23,195,2,10,249,22,141,9,64,114,111,111,116,248,22,74,23, -196,2,28,27,248,22,98,194,28,248,22,149,14,23,194,2,10,28,248,22,131, -7,23,194,2,28,248,22,171,14,23,194,2,10,248,22,172,14,23,194,1,11, -27,248,22,81,248,22,100,195,28,192,192,248,22,150,15,248,22,107,195,11,11, -11,11,250,22,151,2,196,197,249,22,73,197,200,28,28,248,22,81,248,22,100, -23,197,2,10,249,22,141,15,248,22,107,23,198,2,247,22,149,8,27,248,22, -176,14,249,22,174,14,248,22,98,23,200,2,23,198,1,28,248,22,58,248,22, -74,23,198,2,86,94,23,196,1,86,94,28,250,22,153,2,196,11,11,12,250, -22,151,2,196,11,9,249,22,157,2,195,88,163,8,36,38,50,11,9,224,3, -2,33,86,27,248,22,61,248,22,74,23,199,1,250,22,151,2,23,198,2,23, -196,2,249,22,73,248,22,125,23,200,1,250,22,153,2,23,203,1,23,201,1, -9,12,250,22,151,2,195,196,248,22,88,198,20,13,159,80,159,37,56,37,88, -163,36,37,54,8,128,144,9,225,1,0,2,33,80,27,250,22,184,14,28,23, -197,2,80,159,41,46,38,80,159,41,49,38,11,32,0,88,163,8,36,36,41, -11,9,222,33,81,28,249,22,186,3,23,195,2,28,23,196,2,80,158,40,48, -80,158,40,54,20,13,159,80,159,38,56,37,20,20,94,88,163,36,37,55,8, -240,0,60,6,0,9,226,2,1,3,0,33,82,23,196,1,20,13,159,80,159, -38,51,37,26,29,80,159,8,31,52,37,249,22,27,11,80,159,8,33,51,37, -22,183,13,10,22,184,13,10,22,185,13,10,22,188,13,10,22,187,13,10,22, -189,13,10,22,186,13,10,22,190,13,10,22,191,13,10,22,128,14,10,22,129, -14,10,22,130,14,10,22,131,14,11,22,181,13,11,27,249,22,170,5,28,196, -80,159,41,46,38,80,159,41,49,38,66,98,105,110,97,114,121,27,250,22,40, -22,31,88,163,8,36,36,44,11,9,223,4,33,83,20,20,94,88,163,36,36, -43,11,9,223,4,33,84,23,197,1,86,94,28,28,248,22,82,23,194,2,249, -22,4,32,0,88,163,8,36,37,45,11,9,222,33,85,23,195,2,11,12,248, -22,174,9,6,18,18,105,108,108,45,102,111,114,109,101,100,32,99,111,110,116, -101,110,116,27,247,22,133,2,27,90,159,39,11,89,161,39,36,11,248,22,170, -14,28,201,80,159,46,46,38,80,159,46,49,38,192,86,96,249,22,3,20,20, -94,88,163,8,36,37,54,11,9,224,2,3,33,87,23,195,1,23,197,1,249, -22,157,2,195,88,163,8,36,38,48,11,9,223,3,33,88,28,197,86,94,20, -18,159,11,80,158,42,47,193,20,18,159,11,80,158,42,48,196,86,94,20,18, -159,11,80,158,42,53,193,20,18,159,11,80,158,42,54,196,193,28,193,80,158, -38,47,80,158,38,53,248,22,9,88,163,8,32,37,8,40,8,240,0,188,23, -0,9,224,1,2,33,89,0,7,35,114,120,34,47,43,34,28,248,22,131,7, -23,195,2,27,249,22,139,15,2,91,196,28,192,28,249,22,184,3,248,22,97, -195,248,22,174,3,248,22,134,7,198,249,22,7,250,22,153,7,199,36,248,22, -97,198,197,249,22,7,250,22,153,7,199,36,248,22,97,198,249,22,73,249,22, -153,7,200,248,22,99,199,199,249,22,7,196,197,90,159,39,11,89,161,39,36, -11,248,22,170,14,23,198,1,86,94,23,195,1,28,249,22,141,9,23,195,2, -2,33,249,22,7,195,199,27,249,22,73,23,197,1,23,201,1,28,248,22,131, +198,1,247,22,190,14,248,80,159,41,8,29,39,248,22,75,23,200,1,248,80, +159,39,8,29,39,248,22,75,197,28,248,22,81,23,195,2,9,27,248,22,74, +23,196,2,27,28,248,22,173,14,23,195,2,23,194,1,28,248,22,172,14,23, +195,2,249,22,174,14,23,196,1,250,80,159,43,39,39,248,22,189,14,2,31, +11,10,250,80,159,41,39,39,248,22,189,14,2,31,23,197,1,10,28,23,193, +2,249,22,73,248,22,176,14,249,22,174,14,23,198,1,247,22,190,14,248,80, +159,41,8,28,39,248,22,75,23,200,1,248,80,159,39,8,28,39,248,22,75, +197,27,248,22,149,14,23,195,2,28,23,193,2,192,86,94,23,193,1,28,248, +22,131,7,23,195,2,27,248,22,171,14,195,28,192,192,248,22,172,14,195,11, +86,94,28,28,248,22,150,14,23,195,2,10,28,248,22,149,14,23,195,2,10, +28,248,22,131,7,23,195,2,28,248,22,171,14,23,195,2,10,248,22,172,14, +23,195,2,11,12,250,22,177,9,76,110,111,114,109,97,108,45,112,97,116,104, +45,99,97,115,101,6,42,42,112,97,116,104,32,40,102,111,114,32,97,110,121, +32,115,121,115,116,101,109,41,32,111,114,32,118,97,108,105,100,45,112,97,116, +104,32,115,116,114,105,110,103,23,197,2,28,28,248,22,150,14,23,195,2,249, +22,141,9,248,22,151,14,23,197,2,2,32,249,22,141,9,247,22,153,8,2, +32,27,28,248,22,131,7,23,196,2,23,195,2,248,22,143,8,248,22,154,14, +23,197,2,28,249,22,141,15,0,21,35,114,120,34,94,91,92,92,93,91,92, +92,93,91,63,93,91,92,92,93,34,23,195,2,28,248,22,131,7,195,248,22, +157,14,195,194,27,248,22,170,7,23,195,1,249,22,158,14,248,22,146,8,250, +22,149,15,0,6,35,114,120,34,47,34,28,249,22,141,15,0,22,35,114,120, +34,91,47,92,92,93,91,46,32,93,43,91,47,92,92,93,42,36,34,23,201, +2,23,199,1,250,22,149,15,0,19,35,114,120,34,91,32,46,93,43,40,91, +47,92,92,93,42,41,36,34,23,202,1,6,2,2,92,49,80,159,44,37,38, +2,32,28,248,22,131,7,194,248,22,157,14,194,193,32,56,88,163,8,36,39, +53,11,70,102,111,117,110,100,45,101,120,101,99,222,33,59,32,57,88,163,8, +36,40,58,11,64,110,101,120,116,222,33,58,27,248,22,175,14,23,196,2,28, +249,22,143,9,23,195,2,23,197,1,11,28,248,22,171,14,23,194,2,27,249, +22,167,14,23,197,1,23,196,1,28,23,197,2,90,159,39,11,89,161,39,36, +11,248,22,170,14,23,197,2,86,95,23,195,1,23,194,1,27,28,23,202,2, +27,248,22,175,14,23,199,2,28,249,22,143,9,23,195,2,23,200,2,11,28, +248,22,171,14,23,194,2,250,2,56,23,205,2,23,206,2,249,22,167,14,23, +200,2,23,198,1,250,2,56,23,205,2,23,206,2,23,196,1,11,28,23,193, +2,192,86,94,23,193,1,27,28,248,22,149,14,23,196,2,27,249,22,167,14, +23,198,2,23,205,2,28,28,248,22,162,14,193,10,248,22,161,14,193,192,11, +11,28,23,193,2,192,86,94,23,193,1,28,23,203,2,11,27,248,22,175,14, +23,200,2,28,249,22,143,9,23,195,2,23,201,1,11,28,248,22,171,14,23, +194,2,250,2,56,23,206,1,23,207,1,249,22,167,14,23,201,1,23,198,1, +250,2,56,205,206,195,192,86,94,23,194,1,28,23,196,2,90,159,39,11,89, +161,39,36,11,248,22,170,14,23,197,2,86,95,23,195,1,23,194,1,27,28, +23,201,2,27,248,22,175,14,23,199,2,28,249,22,143,9,23,195,2,23,200, +2,11,28,248,22,171,14,23,194,2,250,2,56,23,204,2,23,205,2,249,22, +167,14,23,200,2,23,198,1,250,2,56,23,204,2,23,205,2,23,196,1,11, +28,23,193,2,192,86,94,23,193,1,27,28,248,22,149,14,23,196,2,27,249, +22,167,14,23,198,2,23,204,2,28,28,248,22,162,14,193,10,248,22,161,14, +193,192,11,11,28,23,193,2,192,86,94,23,193,1,28,23,202,2,11,27,248, +22,175,14,23,200,2,28,249,22,143,9,23,195,2,23,201,1,11,28,248,22, +171,14,23,194,2,250,2,56,23,205,1,23,206,1,249,22,167,14,23,201,1, +23,198,1,250,2,56,204,205,195,192,28,23,193,2,90,159,39,11,89,161,39, +36,11,248,22,170,14,23,199,2,86,95,23,195,1,23,194,1,27,28,23,198, +2,251,2,57,23,198,2,23,203,2,23,201,2,23,202,2,11,28,23,193,2, +192,86,94,23,193,1,27,28,248,22,149,14,195,27,249,22,167,14,197,200,28, +28,248,22,162,14,193,10,248,22,161,14,193,192,11,11,28,192,192,28,198,11, +251,2,57,198,203,201,202,194,32,60,88,163,8,36,40,58,11,2,30,222,33, +61,28,248,22,81,23,197,2,11,27,248,22,174,14,248,22,74,23,199,2,27, +249,22,167,14,23,196,1,23,197,2,28,248,22,161,14,23,194,2,250,2,56, +198,199,195,86,94,23,193,1,27,248,22,75,23,200,1,28,248,22,81,23,194, +2,11,27,248,22,174,14,248,22,74,23,196,2,27,249,22,167,14,23,196,1, +23,200,2,28,248,22,161,14,23,194,2,250,2,56,201,202,195,86,94,23,193, +1,27,248,22,75,23,197,1,28,248,22,81,23,194,2,11,27,248,22,174,14, +248,22,74,195,27,249,22,167,14,23,196,1,202,28,248,22,161,14,193,250,2, +56,204,205,195,251,2,60,204,205,206,248,22,75,199,86,95,28,28,248,22,149, +14,23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,171,14,23,195,2, +10,248,22,172,14,23,195,2,11,12,250,22,177,9,2,5,6,25,25,112,97, +116,104,32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117, +108,41,23,197,2,28,28,23,195,2,28,28,248,22,149,14,23,196,2,10,28, +248,22,131,7,23,196,2,28,248,22,171,14,23,196,2,10,248,22,172,14,23, +196,2,11,248,22,171,14,23,196,2,11,10,12,250,22,177,9,2,5,6,29, +29,35,102,32,111,114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32, +111,114,32,115,116,114,105,110,103,23,198,2,28,28,248,22,171,14,23,195,2, +90,159,39,11,89,161,39,36,11,248,22,170,14,23,198,2,249,22,141,9,194, +2,33,11,27,248,22,151,8,6,4,4,80,65,84,72,27,28,23,194,2,27, +249,80,158,41,40,23,197,1,9,28,249,22,141,9,247,22,153,8,2,32,249, +22,73,248,22,158,14,5,1,46,194,192,86,94,23,194,1,9,28,248,22,81, +23,194,2,11,27,248,22,174,14,248,22,74,23,196,2,27,249,22,167,14,23, +196,1,23,200,2,28,248,22,161,14,23,194,2,250,2,56,201,202,195,86,94, +23,193,1,27,248,22,75,23,197,1,28,248,22,81,23,194,2,11,27,248,22, +174,14,248,22,74,23,196,2,27,249,22,167,14,23,196,1,23,203,2,28,248, +22,161,14,23,194,2,250,2,56,204,205,195,86,94,23,193,1,27,248,22,75, +23,197,1,28,248,22,81,23,194,2,11,27,248,22,174,14,248,22,74,195,27, +249,22,167,14,23,196,1,205,28,248,22,161,14,193,250,2,56,23,15,23,16, +195,251,2,60,23,15,23,16,23,17,248,22,75,199,27,248,22,174,14,23,196, +1,28,248,22,161,14,193,250,2,56,198,199,195,11,250,80,159,39,39,39,196, +197,11,250,80,159,39,39,39,196,11,11,32,65,88,163,8,36,39,57,11,2, +30,222,33,67,0,8,35,114,120,35,34,92,34,34,27,249,22,137,15,23,197, +2,23,198,2,28,23,193,2,86,94,23,196,1,27,248,22,98,23,195,2,27, +27,248,22,107,23,197,1,27,249,22,137,15,23,201,2,23,196,2,28,23,193, +2,86,94,23,194,1,27,248,22,98,23,195,2,27,250,2,65,23,203,2,23, +204,1,248,22,107,23,199,1,28,249,22,128,8,23,196,2,2,34,249,22,87, +23,202,2,194,249,22,73,248,22,158,14,28,249,22,141,9,247,22,153,8,2, +32,250,22,149,15,2,66,23,200,1,2,35,23,197,1,194,86,95,23,199,1, +23,193,1,28,249,22,128,8,23,196,2,2,34,249,22,87,23,200,2,9,249, +22,73,248,22,158,14,28,249,22,141,9,247,22,153,8,2,32,250,22,149,15, +2,66,23,200,1,2,35,23,197,1,9,28,249,22,128,8,23,196,2,2,34, +249,22,87,197,194,86,94,23,196,1,249,22,73,248,22,158,14,28,249,22,141, +9,247,22,153,8,2,32,250,22,149,15,2,66,23,200,1,2,35,23,197,1, +194,86,94,23,193,1,28,249,22,128,8,23,198,2,2,34,249,22,87,195,9, +86,94,23,194,1,249,22,73,248,22,158,14,28,249,22,141,9,247,22,153,8, +2,32,250,22,149,15,2,66,23,202,1,2,35,23,199,1,9,86,95,28,28, +248,22,184,7,194,10,248,22,131,7,194,12,250,22,177,9,2,6,6,21,21, +98,121,116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103, +196,28,28,248,22,82,195,249,22,4,22,149,14,196,11,12,250,22,177,9,2, +6,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,65, +197,195,28,248,22,131,7,197,248,22,145,8,197,196,86,94,28,28,248,22,149, +14,23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,171,14,23,195,2, +10,248,22,172,14,23,195,2,11,12,250,22,177,9,23,196,2,2,36,23,197, +2,28,248,22,171,14,23,195,2,12,248,22,163,12,249,22,169,11,248,22,160, +7,250,22,179,7,2,37,23,200,1,23,201,1,247,22,23,86,94,28,28,248, +22,149,14,23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,171,14,23, +195,2,10,248,22,172,14,23,195,2,11,12,250,22,177,9,23,196,2,2,36, +23,197,2,28,248,22,171,14,23,195,2,12,248,22,163,12,249,22,169,11,248, +22,160,7,250,22,179,7,2,37,23,200,1,23,201,1,247,22,23,86,94,86, +94,28,28,248,22,149,14,23,195,2,10,28,248,22,131,7,23,195,2,28,248, +22,171,14,23,195,2,10,248,22,172,14,23,195,2,11,12,250,22,177,9,195, +2,36,23,197,2,28,248,22,171,14,23,195,2,12,248,22,163,12,249,22,169, +11,248,22,160,7,250,22,179,7,2,37,199,23,201,1,247,22,23,249,22,3, +88,163,8,36,37,50,11,9,223,2,33,70,196,86,94,28,28,248,22,149,14, +23,194,2,10,28,248,22,131,7,23,194,2,28,248,22,171,14,23,194,2,10, +248,22,172,14,23,194,2,11,12,250,22,177,9,2,9,2,36,23,196,2,28, +248,22,171,14,23,194,2,12,248,22,163,12,249,22,169,11,248,22,160,7,250, +22,179,7,2,37,2,9,23,200,1,247,22,23,248,22,163,12,249,22,138,12, +23,196,1,247,22,23,86,94,86,94,86,94,28,28,248,22,149,14,194,10,28, +248,22,131,7,194,28,248,22,171,14,194,10,248,22,172,14,194,11,12,250,22, +177,9,2,9,2,36,196,28,248,22,171,14,194,12,248,22,163,12,249,22,169, +11,248,22,160,7,250,22,179,7,2,37,2,9,200,247,22,23,249,22,3,32, +0,88,163,8,36,37,49,11,9,222,33,72,196,252,80,158,41,44,2,9,32, +0,88,163,8,36,37,45,11,9,222,33,73,198,199,11,86,94,28,28,248,22, +149,14,23,194,2,10,28,248,22,131,7,23,194,2,28,248,22,171,14,23,194, +2,10,248,22,172,14,23,194,2,11,12,250,22,177,9,2,11,2,36,23,196, +2,28,248,22,171,14,23,194,2,12,248,22,163,12,249,22,169,11,248,22,160, +7,250,22,179,7,2,37,2,11,23,200,1,247,22,23,248,22,163,12,249,22, +138,12,23,196,1,247,22,23,86,95,86,94,28,28,248,22,149,14,194,10,28, +248,22,131,7,194,28,248,22,171,14,194,10,248,22,172,14,194,11,12,250,22, +177,9,2,11,2,36,196,28,248,22,171,14,194,12,248,22,163,12,249,22,169, +11,248,22,160,7,250,22,179,7,2,37,2,11,200,247,22,23,86,94,86,94, +28,28,248,22,149,14,23,196,2,10,28,248,22,131,7,23,196,2,28,248,22, +171,14,23,196,2,10,248,22,172,14,23,196,2,11,12,250,22,177,9,2,11, +2,36,23,198,2,28,248,22,171,14,23,196,2,12,248,22,163,12,249,22,169, +11,248,22,160,7,250,22,179,7,2,37,2,11,23,202,2,247,22,23,249,22, +3,32,0,88,163,8,36,37,49,11,9,222,33,75,23,198,2,249,22,167,14, +252,80,158,43,44,2,11,32,0,88,163,8,36,37,45,11,9,222,33,76,23, +202,1,23,203,1,200,195,0,6,45,105,110,102,46,48,27,248,22,189,14,2, +38,27,28,248,22,172,14,23,195,2,193,20,13,159,80,159,38,51,37,250,80, +159,41,52,37,249,22,27,11,80,159,43,51,37,22,190,14,248,22,189,14,68, +111,114,105,103,45,100,105,114,27,248,22,189,14,2,31,250,80,159,42,39,39, +23,196,1,23,198,1,11,28,192,250,22,167,14,195,6,6,6,99,111,110,102, +105,103,6,10,10,108,105,110,107,115,46,114,107,116,100,11,86,94,27,247,22, +132,10,28,249,22,189,9,23,195,2,2,39,251,22,128,10,23,197,1,2,39, +250,22,179,7,2,40,28,23,202,1,80,159,46,46,38,80,159,46,49,38,248, +22,161,11,23,205,1,247,22,23,12,248,193,247,22,133,2,2,78,86,95,27, +247,22,132,10,28,249,22,189,9,23,195,2,2,39,251,22,128,10,23,197,1, +2,39,250,22,179,7,2,40,28,202,80,159,47,46,38,80,159,47,49,38,248, +22,161,11,23,206,1,247,22,23,12,28,192,28,194,86,94,20,18,159,11,80, +158,39,47,247,22,133,2,20,18,159,11,80,158,39,48,192,86,94,20,18,159, +11,80,158,39,53,247,22,133,2,20,18,159,11,80,158,39,54,192,12,248,194, +247,22,133,2,20,20,94,248,22,191,5,23,194,2,28,248,22,190,6,248,22, +191,5,23,195,1,12,248,22,174,9,6,30,30,101,120,112,101,99,116,101,100, +32,97,32,115,105,110,103,108,101,32,83,45,101,120,112,114,101,115,115,105,111, +110,248,22,179,5,193,28,248,22,82,23,194,2,28,28,249,22,184,3,38,248, +22,86,23,196,2,10,249,22,184,3,39,248,22,86,23,196,2,28,28,248,22, +131,7,248,22,74,23,195,2,10,249,22,141,9,64,114,111,111,116,248,22,74, +23,196,2,28,27,248,22,98,194,28,248,22,149,14,23,194,2,10,28,248,22, +131,7,23,194,2,28,248,22,171,14,23,194,2,10,248,22,172,14,23,194,1, +11,27,248,22,81,248,22,100,195,28,192,192,248,22,150,15,248,22,107,195,11, +11,11,11,250,22,151,2,196,197,249,22,73,197,200,28,28,248,22,81,248,22, +100,23,197,2,10,249,22,141,15,248,22,107,23,198,2,247,22,149,8,27,248, +22,176,14,249,22,174,14,248,22,98,23,200,2,23,198,1,28,248,22,58,248, +22,74,23,198,2,86,94,23,196,1,86,94,28,250,22,153,2,196,11,11,12, +250,22,151,2,196,11,9,249,22,157,2,195,88,163,8,36,38,50,11,9,224, +3,2,33,86,27,248,22,61,248,22,74,23,199,1,250,22,151,2,23,198,2, +23,196,2,249,22,73,248,22,125,23,200,1,250,22,153,2,23,203,1,23,201, +1,9,12,250,22,151,2,195,196,248,22,88,198,20,13,159,80,159,37,56,37, +88,163,36,37,54,8,128,144,9,225,1,0,2,33,80,27,250,22,184,14,28, +23,197,2,80,159,41,46,38,80,159,41,49,38,11,32,0,88,163,8,36,36, +41,11,9,222,33,81,28,249,22,186,3,23,195,2,28,23,196,2,80,158,40, +48,80,158,40,54,20,13,159,80,159,38,56,37,20,20,94,88,163,36,37,55, +8,240,0,60,6,0,9,226,2,1,3,0,33,82,23,196,1,20,13,159,80, +159,38,51,37,26,29,80,159,8,31,52,37,249,22,27,11,80,159,8,33,51, +37,22,183,13,10,22,184,13,10,22,185,13,10,22,188,13,10,22,187,13,10, +22,189,13,10,22,186,13,10,22,190,13,10,22,191,13,10,22,128,14,10,22, +129,14,10,22,130,14,10,22,131,14,11,22,181,13,11,27,249,22,170,5,28, +196,80,159,41,46,38,80,159,41,49,38,66,98,105,110,97,114,121,27,250,22, +40,22,31,88,163,8,36,36,44,11,9,223,4,33,83,20,20,94,88,163,36, +36,43,11,9,223,4,33,84,23,197,1,86,94,28,28,248,22,82,23,194,2, +249,22,4,32,0,88,163,8,36,37,45,11,9,222,33,85,23,195,2,11,12, +248,22,174,9,6,18,18,105,108,108,45,102,111,114,109,101,100,32,99,111,110, +116,101,110,116,27,247,22,133,2,27,90,159,39,11,89,161,39,36,11,248,22, +170,14,28,201,80,159,46,46,38,80,159,46,49,38,192,86,96,249,22,3,20, +20,94,88,163,8,36,37,54,11,9,224,2,3,33,87,23,195,1,23,197,1, +249,22,157,2,195,88,163,8,36,38,48,11,9,223,3,33,88,28,197,86,94, +20,18,159,11,80,158,42,47,193,20,18,159,11,80,158,42,48,196,86,94,20, +18,159,11,80,158,42,53,193,20,18,159,11,80,158,42,54,196,193,28,193,80, +158,38,47,80,158,38,53,248,22,9,88,163,8,32,37,8,40,8,240,0,188, +23,0,9,224,1,2,33,89,0,7,35,114,120,34,47,43,34,28,248,22,131, 7,23,195,2,27,249,22,139,15,2,91,196,28,192,28,249,22,184,3,248,22, 97,195,248,22,174,3,248,22,134,7,198,249,22,7,250,22,153,7,199,36,248, -22,97,198,195,249,22,7,250,22,153,7,199,36,248,22,97,198,249,22,73,249, -22,153,7,200,248,22,99,199,197,249,22,7,196,195,90,159,39,11,89,161,39, -36,11,248,22,170,14,23,198,1,28,249,22,141,9,194,2,33,249,22,7,195, -197,249,80,159,45,57,39,194,249,22,73,197,199,32,93,88,163,36,44,8,36, -11,65,99,108,111,111,112,222,33,98,32,94,88,163,8,36,37,55,11,2,30, -222,33,95,28,248,22,81,248,22,75,23,195,2,248,22,83,27,248,22,74,23, -196,1,28,248,22,149,14,23,194,2,248,22,153,14,23,194,1,192,250,22,84, -27,248,22,74,23,198,2,28,248,22,149,14,23,194,2,248,22,153,14,23,194, -1,192,2,41,27,248,22,75,23,198,1,28,248,22,81,248,22,75,23,195,2, -248,22,83,27,248,22,74,23,196,1,28,248,22,149,14,23,194,2,248,22,153, -14,23,194,1,192,250,22,84,27,248,22,74,23,198,2,28,248,22,149,14,23, -194,2,248,22,153,14,23,194,1,192,2,41,27,248,22,75,23,198,1,28,248, -22,81,248,22,75,23,195,2,248,22,83,27,248,22,74,23,196,1,28,248,22, -149,14,23,194,2,248,22,153,14,23,194,1,192,250,22,84,27,248,22,74,23, -198,2,28,248,22,149,14,23,194,2,248,22,153,14,23,194,1,192,2,41,248, -2,94,248,22,75,23,198,1,32,96,88,163,8,36,38,57,11,66,102,105,108, -116,101,114,222,33,97,28,248,22,81,23,195,2,9,28,248,23,194,2,248,22, -74,23,196,2,249,22,73,248,22,74,23,197,2,27,248,22,75,23,198,1,28, -248,22,81,23,194,2,9,28,248,23,197,2,248,22,74,23,195,2,249,22,73, +22,97,198,197,249,22,7,250,22,153,7,199,36,248,22,97,198,249,22,73,249, +22,153,7,200,248,22,99,199,199,249,22,7,196,197,90,159,39,11,89,161,39, +36,11,248,22,170,14,23,198,1,86,94,23,195,1,28,249,22,141,9,23,195, +2,2,33,249,22,7,195,199,27,249,22,73,23,197,1,23,201,1,28,248,22, +131,7,23,195,2,27,249,22,139,15,2,91,196,28,192,28,249,22,184,3,248, +22,97,195,248,22,174,3,248,22,134,7,198,249,22,7,250,22,153,7,199,36, +248,22,97,198,195,249,22,7,250,22,153,7,199,36,248,22,97,198,249,22,73, +249,22,153,7,200,248,22,99,199,197,249,22,7,196,195,90,159,39,11,89,161, +39,36,11,248,22,170,14,23,198,1,28,249,22,141,9,194,2,33,249,22,7, +195,197,249,80,159,45,57,39,194,249,22,73,197,199,32,93,88,163,36,44,8, +36,11,65,99,108,111,111,112,222,33,98,32,94,88,163,8,36,37,55,11,2, +30,222,33,95,28,248,22,81,248,22,75,23,195,2,248,22,83,27,248,22,74, +23,196,1,28,248,22,149,14,23,194,2,248,22,153,14,23,194,1,192,250,22, +84,27,248,22,74,23,198,2,28,248,22,149,14,23,194,2,248,22,153,14,23, +194,1,192,2,41,27,248,22,75,23,198,1,28,248,22,81,248,22,75,23,195, +2,248,22,83,27,248,22,74,23,196,1,28,248,22,149,14,23,194,2,248,22, +153,14,23,194,1,192,250,22,84,27,248,22,74,23,198,2,28,248,22,149,14, +23,194,2,248,22,153,14,23,194,1,192,2,41,27,248,22,75,23,198,1,28, +248,22,81,248,22,75,23,195,2,248,22,83,27,248,22,74,23,196,1,28,248, +22,149,14,23,194,2,248,22,153,14,23,194,1,192,250,22,84,27,248,22,74, +23,198,2,28,248,22,149,14,23,194,2,248,22,153,14,23,194,1,192,2,41, +248,2,94,248,22,75,23,198,1,32,96,88,163,8,36,38,57,11,66,102,105, +108,116,101,114,222,33,97,28,248,22,81,23,195,2,9,28,248,23,194,2,248, +22,74,23,196,2,249,22,73,248,22,74,23,197,2,27,248,22,75,23,198,1, +28,248,22,81,23,194,2,9,28,248,23,197,2,248,22,74,23,195,2,249,22, +73,248,22,74,23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2, +9,28,248,23,200,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2, +27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,23,203,2,248, +22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,96,23,206,1,248, +22,75,23,198,1,249,2,96,23,204,1,248,22,75,23,196,1,27,248,22,75, +23,195,1,28,248,22,81,23,194,2,9,28,248,23,201,2,248,22,74,23,195, +2,249,22,73,248,22,74,23,196,2,249,2,96,23,204,1,248,22,75,23,198, +1,249,2,96,23,202,1,248,22,75,23,196,1,27,248,22,75,23,195,1,28, +248,22,81,23,194,2,9,28,248,23,198,2,248,22,74,23,195,2,249,22,73, 248,22,74,23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9, -28,248,23,200,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27, -248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,23,203,2,248,22, -74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,96,23,206,1,248,22, -75,23,198,1,249,2,96,23,204,1,248,22,75,23,196,1,27,248,22,75,23, -195,1,28,248,22,81,23,194,2,9,28,248,23,201,2,248,22,74,23,195,2, -249,22,73,248,22,74,23,196,2,249,2,96,23,204,1,248,22,75,23,198,1, -249,2,96,23,202,1,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248, +28,248,23,201,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249, +2,96,23,204,1,248,22,75,23,198,1,249,2,96,23,202,1,248,22,75,23, +196,1,27,248,22,75,23,195,1,28,248,22,81,23,194,2,9,28,248,23,199, +2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,96,23,202, +1,248,22,75,23,198,1,249,2,96,23,200,1,248,22,75,23,196,1,27,248, +22,75,23,196,1,28,248,22,81,23,194,2,9,28,248,23,195,2,248,22,74, +23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75,23,197,1,28,248, 22,81,23,194,2,9,28,248,23,198,2,248,22,74,23,195,2,249,22,73,248, 22,74,23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28, 248,23,201,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2, @@ -414,538 +423,529 @@ 1,27,248,22,75,23,195,1,28,248,22,81,23,194,2,9,28,248,23,199,2, 248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,96,23,202,1, 248,22,75,23,198,1,249,2,96,23,200,1,248,22,75,23,196,1,27,248,22, -75,23,196,1,28,248,22,81,23,194,2,9,28,248,23,195,2,248,22,74,23, +75,23,195,1,28,248,22,81,23,194,2,9,28,248,23,196,2,248,22,74,23, 195,2,249,22,73,248,22,74,23,196,2,27,248,22,75,23,197,1,28,248,22, -81,23,194,2,9,28,248,23,198,2,248,22,74,23,195,2,249,22,73,248,22, -74,23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248, -23,201,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,96, -23,204,1,248,22,75,23,198,1,249,2,96,23,202,1,248,22,75,23,196,1, -27,248,22,75,23,195,1,28,248,22,81,23,194,2,9,28,248,23,199,2,248, -22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,96,23,202,1,248, -22,75,23,198,1,249,2,96,23,200,1,248,22,75,23,196,1,27,248,22,75, -23,195,1,28,248,22,81,23,194,2,9,28,248,23,196,2,248,22,74,23,195, -2,249,22,73,248,22,74,23,196,2,27,248,22,75,23,197,1,28,248,22,81, -23,194,2,9,28,248,23,199,2,248,22,74,23,195,2,249,22,73,248,22,74, -23,196,2,249,2,96,23,202,1,248,22,75,23,198,1,249,2,96,23,200,1, -248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23,194,2,9, -28,248,23,197,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249, -2,96,23,200,1,248,22,75,23,198,1,249,2,96,197,248,22,75,195,28,248, -22,81,23,200,2,86,95,23,199,1,23,198,1,28,23,200,2,199,86,94,23, -200,1,27,28,248,22,81,23,197,2,6,0,0,249,22,1,22,154,7,248,2, -94,23,199,2,248,23,199,1,252,22,179,7,6,44,44,126,97,58,32,99,111, -108,108,101,99,116,105,111,110,32,110,111,116,32,102,111,117,110,100,58,32,126, -115,32,105,110,32,97,110,121,32,111,102,58,32,126,115,126,97,23,203,1,28, -248,22,81,23,203,1,28,248,22,149,14,23,202,2,248,22,153,14,23,202,1, -23,201,1,250,22,154,7,28,248,22,149,14,23,205,2,248,22,153,14,23,205, -1,23,204,1,6,1,1,47,23,202,2,28,248,22,81,23,201,2,9,28,248, -22,149,14,248,22,74,23,202,2,249,22,73,248,22,74,23,203,2,27,248,22, -75,23,204,2,28,248,22,81,23,194,2,9,28,248,22,149,14,248,22,74,23, -195,2,249,22,73,248,22,74,23,196,2,27,248,22,75,23,197,1,28,248,22, -81,23,194,2,9,28,248,22,149,14,248,22,74,23,195,2,249,22,73,248,22, -74,23,196,2,249,2,96,22,149,14,248,22,75,23,198,1,249,2,96,22,149, -14,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23,194,2, -9,28,248,22,149,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2, -249,2,96,22,149,14,248,22,75,23,198,1,249,2,96,22,149,14,248,22,75, -23,196,1,27,248,22,75,23,202,2,28,248,22,81,23,194,2,9,28,248,22, -149,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75, -23,197,1,28,248,22,81,23,194,2,9,28,248,22,149,14,248,22,74,23,195, -2,249,22,73,248,22,74,23,196,2,249,2,96,22,149,14,248,22,75,23,198, -1,249,2,96,22,149,14,248,22,75,23,196,1,27,248,22,75,23,195,1,28, -248,22,81,23,194,2,9,28,248,22,149,14,248,22,74,23,195,2,249,22,73, -248,22,74,23,196,2,249,2,96,22,149,14,248,22,75,23,198,1,249,2,96, -22,149,14,248,22,75,23,196,1,28,249,22,5,22,127,23,202,2,250,22,179, -7,6,21,21,32,111,114,58,32,126,115,32,105,110,32,97,110,121,32,111,102, -58,32,126,115,23,202,1,249,22,2,22,128,2,28,248,22,81,23,206,2,86, -94,23,205,1,9,28,248,22,127,248,22,74,23,207,2,249,22,73,248,22,74, -23,208,2,27,248,22,75,23,209,1,28,248,22,81,23,194,2,9,28,248,22, +81,23,194,2,9,28,248,23,199,2,248,22,74,23,195,2,249,22,73,248,22, +74,23,196,2,249,2,96,23,202,1,248,22,75,23,198,1,249,2,96,23,200, +1,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23,194,2, +9,28,248,23,197,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2, +249,2,96,23,200,1,248,22,75,23,198,1,249,2,96,197,248,22,75,195,28, +248,22,81,23,200,2,86,95,23,199,1,23,198,1,28,23,200,2,199,86,94, +23,200,1,27,28,248,22,81,23,197,2,6,0,0,249,22,1,22,154,7,248, +2,94,23,199,2,248,23,199,1,252,22,179,7,6,44,44,126,97,58,32,99, +111,108,108,101,99,116,105,111,110,32,110,111,116,32,102,111,117,110,100,58,32, +126,115,32,105,110,32,97,110,121,32,111,102,58,32,126,115,126,97,23,203,1, +28,248,22,81,23,203,1,28,248,22,149,14,23,202,2,248,22,153,14,23,202, +1,23,201,1,250,22,154,7,28,248,22,149,14,23,205,2,248,22,153,14,23, +205,1,23,204,1,6,1,1,47,23,202,2,28,248,22,81,23,201,2,9,28, +248,22,149,14,248,22,74,23,202,2,249,22,73,248,22,74,23,203,2,27,248, +22,75,23,204,2,28,248,22,81,23,194,2,9,28,248,22,149,14,248,22,74, +23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75,23,197,1,28,248, +22,81,23,194,2,9,28,248,22,149,14,248,22,74,23,195,2,249,22,73,248, +22,74,23,196,2,249,2,96,22,149,14,248,22,75,23,198,1,249,2,96,22, +149,14,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23,194, +2,9,28,248,22,149,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196, +2,249,2,96,22,149,14,248,22,75,23,198,1,249,2,96,22,149,14,248,22, +75,23,196,1,27,248,22,75,23,202,2,28,248,22,81,23,194,2,9,28,248, +22,149,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22, +75,23,197,1,28,248,22,81,23,194,2,9,28,248,22,149,14,248,22,74,23, +195,2,249,22,73,248,22,74,23,196,2,249,2,96,22,149,14,248,22,75,23, +198,1,249,2,96,22,149,14,248,22,75,23,196,1,27,248,22,75,23,195,1, +28,248,22,81,23,194,2,9,28,248,22,149,14,248,22,74,23,195,2,249,22, +73,248,22,74,23,196,2,249,2,96,22,149,14,248,22,75,23,198,1,249,2, +96,22,149,14,248,22,75,23,196,1,28,249,22,5,22,127,23,202,2,250,22, +179,7,6,21,21,32,111,114,58,32,126,115,32,105,110,32,97,110,121,32,111, +102,58,32,126,115,23,202,1,249,22,2,22,128,2,28,248,22,81,23,206,2, +86,94,23,205,1,9,28,248,22,127,248,22,74,23,207,2,249,22,73,248,22, +74,23,208,2,27,248,22,75,23,209,1,28,248,22,81,23,194,2,9,28,248, +22,127,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75, +23,197,1,28,248,22,81,23,194,2,9,28,248,22,127,248,22,74,23,195,2, +249,22,73,248,22,74,23,196,2,249,2,96,22,127,248,22,75,23,198,1,249, +2,96,22,127,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81, +23,194,2,9,28,248,22,127,248,22,74,23,195,2,249,22,73,248,22,74,23, +196,2,249,2,96,22,127,248,22,75,23,198,1,249,2,96,22,127,248,22,75, +23,196,1,27,248,22,75,23,207,1,28,248,22,81,23,194,2,9,28,248,22, 127,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75,23, 197,1,28,248,22,81,23,194,2,9,28,248,22,127,248,22,74,23,195,2,249, 22,73,248,22,74,23,196,2,249,2,96,22,127,248,22,75,23,198,1,249,2, 96,22,127,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23, 194,2,9,28,248,22,127,248,22,74,23,195,2,249,22,73,248,22,74,23,196, 2,249,2,96,22,127,248,22,75,23,198,1,249,2,96,22,127,248,22,75,23, -196,1,27,248,22,75,23,207,1,28,248,22,81,23,194,2,9,28,248,22,127, -248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75,23,197, -1,28,248,22,81,23,194,2,9,28,248,22,127,248,22,74,23,195,2,249,22, -73,248,22,74,23,196,2,249,2,96,22,127,248,22,75,23,198,1,249,2,96, -22,127,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23,194, -2,9,28,248,22,127,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2, -249,2,96,22,127,248,22,75,23,198,1,249,2,96,22,127,248,22,75,23,196, -1,86,94,23,199,1,6,0,0,27,248,22,74,23,201,2,27,28,248,22,149, -14,23,195,2,249,22,167,14,23,196,1,23,198,2,248,22,128,2,23,195,1, -28,28,248,22,149,14,248,22,74,23,203,2,248,22,162,14,23,194,2,10,27, -250,22,1,22,167,14,23,197,1,23,201,2,28,28,248,22,81,23,199,2,10, -248,22,162,14,23,194,2,28,23,201,2,28,28,248,22,161,14,249,22,167,14, -195,203,10,27,28,248,22,149,14,202,248,22,153,14,202,201,27,248,22,134,7, -23,195,2,27,28,249,22,188,3,23,196,2,40,28,249,22,137,7,6,4,4, -46,114,107,116,249,22,153,7,23,199,2,249,22,176,3,23,200,2,40,249,22, -154,7,250,22,153,7,23,200,1,36,249,22,176,3,23,201,1,40,6,3,3, -46,115,115,86,95,23,195,1,23,194,1,11,11,28,23,193,2,248,22,161,14, -249,22,167,14,198,23,196,1,11,192,26,8,2,93,203,204,205,206,23,15,23, -16,248,22,75,23,18,28,23,18,23,18,200,192,26,8,2,93,203,204,205,206, -23,15,23,16,248,22,75,23,18,23,18,26,8,2,93,202,203,204,205,206,23, -15,248,22,75,23,17,23,17,90,159,38,11,89,161,38,36,11,249,80,159,40, -57,39,23,200,1,23,201,1,27,248,22,61,28,248,22,149,14,195,248,22,153, -14,195,194,27,247,22,130,15,27,250,22,87,28,23,197,2,28,247,22,129,15, -27,248,80,159,46,55,39,10,27,250,22,153,2,23,197,2,23,203,2,11,28, -23,193,2,192,86,94,23,193,1,250,22,153,2,23,197,1,11,9,9,9,28, -23,197,1,28,80,159,44,49,38,27,248,80,159,46,55,39,11,27,250,22,153, -2,23,197,2,23,203,1,11,28,23,193,2,192,86,94,23,193,1,250,22,153, -2,23,197,1,11,9,86,94,23,198,1,9,9,247,22,191,14,26,8,2,93, -200,203,204,206,23,15,23,18,200,11,86,95,28,28,248,22,150,14,23,194,2, -10,28,248,22,149,14,23,194,2,10,28,248,22,131,7,23,194,2,28,248,22, -171,14,23,194,2,10,248,22,172,14,23,194,2,11,12,252,22,177,9,23,200, -2,2,42,36,23,198,2,23,199,2,28,28,248,22,131,7,23,195,2,10,248, -22,184,7,23,195,2,86,94,23,194,1,12,252,22,177,9,23,200,2,2,43, -37,23,198,2,23,199,1,90,159,39,11,89,161,39,36,11,248,22,170,14,23, -197,2,86,94,23,195,1,86,94,28,192,12,250,22,178,9,23,201,1,2,44, -23,199,1,249,22,7,194,195,90,159,38,11,89,161,38,36,11,86,95,28,28, -248,22,150,14,23,196,2,10,28,248,22,149,14,23,196,2,10,28,248,22,131, -7,23,196,2,28,248,22,171,14,23,196,2,10,248,22,172,14,23,196,2,11, -12,252,22,177,9,2,25,2,42,36,23,200,2,23,201,2,28,28,248,22,131, -7,23,197,2,10,248,22,184,7,23,197,2,12,252,22,177,9,2,25,2,43, -37,23,200,2,23,201,2,90,159,39,11,89,161,39,36,11,248,22,170,14,23, -199,2,86,94,23,195,1,86,94,28,192,12,250,22,178,9,2,25,2,44,23, -201,2,249,22,7,194,195,27,249,22,159,14,250,22,148,15,0,20,35,114,120, -35,34,40,63,58,91,46,93,91,94,46,93,42,124,41,36,34,248,22,155,14, -23,201,1,28,248,22,131,7,23,203,2,249,22,146,8,23,204,1,8,63,23, -202,1,28,248,22,150,14,23,199,2,248,22,151,14,23,199,1,86,94,23,198, -1,247,22,152,14,28,248,22,149,14,194,249,22,167,14,195,194,192,90,159,38, -11,89,161,38,36,11,86,95,28,28,248,22,150,14,23,196,2,10,28,248,22, -149,14,23,196,2,10,28,248,22,131,7,23,196,2,28,248,22,171,14,23,196, -2,10,248,22,172,14,23,196,2,11,12,252,22,177,9,2,26,2,42,36,23, -200,2,23,201,2,28,28,248,22,131,7,23,197,2,10,248,22,184,7,23,197, -2,12,252,22,177,9,2,26,2,43,37,23,200,2,23,201,2,90,159,39,11, -89,161,39,36,11,248,22,170,14,23,199,2,86,94,23,195,1,86,94,28,192, -12,250,22,178,9,2,26,2,44,23,201,2,249,22,7,194,195,27,249,22,159, -14,249,22,132,8,250,22,149,15,0,9,35,114,120,35,34,91,46,93,34,248, -22,155,14,23,203,1,6,1,1,95,28,248,22,131,7,23,202,2,249,22,146, -8,23,203,1,8,63,23,201,1,28,248,22,150,14,23,199,2,248,22,151,14, -23,199,1,86,94,23,198,1,247,22,152,14,28,248,22,149,14,194,249,22,167, -14,195,194,192,249,247,22,159,5,194,11,27,247,22,129,15,249,80,159,39,40, -38,28,23,195,2,27,248,22,151,8,2,45,28,192,192,2,46,2,47,27,28, -23,196,1,250,22,167,14,248,22,189,14,2,48,247,22,149,8,2,49,11,27, -248,80,159,42,8,28,39,250,22,87,9,248,22,83,248,22,189,14,2,38,9, +196,1,86,94,23,199,1,6,0,0,27,248,22,74,23,201,2,27,28,248,22, +149,14,23,195,2,249,22,167,14,23,196,1,23,198,2,248,22,128,2,23,195, +1,28,28,248,22,149,14,248,22,74,23,203,2,248,22,162,14,23,194,2,10, +27,250,22,1,22,167,14,23,197,1,23,201,2,28,28,248,22,81,23,199,2, +10,248,22,162,14,23,194,2,28,23,201,2,28,28,248,22,161,14,249,22,167, +14,195,203,10,27,28,248,22,149,14,202,248,22,153,14,202,201,27,248,22,134, +7,23,195,2,27,28,249,22,188,3,23,196,2,40,28,249,22,137,7,6,4, +4,46,114,107,116,249,22,153,7,23,199,2,249,22,176,3,23,200,2,40,249, +22,154,7,250,22,153,7,23,200,1,36,249,22,176,3,23,201,1,40,6,3, +3,46,115,115,86,95,23,195,1,23,194,1,11,11,28,23,193,2,248,22,161, +14,249,22,167,14,198,23,196,1,11,192,26,8,2,93,203,204,205,206,23,15, +23,16,248,22,75,23,18,28,23,18,23,18,200,192,26,8,2,93,203,204,205, +206,23,15,23,16,248,22,75,23,18,23,18,26,8,2,93,202,203,204,205,206, +23,15,248,22,75,23,17,23,17,90,159,38,11,89,161,38,36,11,249,80,159, +40,57,39,23,200,1,23,201,1,27,248,22,61,28,248,22,149,14,195,248,22, +153,14,195,194,27,247,22,130,15,27,250,22,87,28,23,197,2,28,247,22,129, +15,27,248,80,159,46,55,39,10,27,250,22,153,2,23,197,2,23,203,2,11, +28,23,193,2,192,86,94,23,193,1,250,22,153,2,23,197,1,11,9,9,9, +28,23,197,1,28,80,159,44,49,38,27,248,80,159,46,55,39,11,27,250,22, +153,2,23,197,2,23,203,1,11,28,23,193,2,192,86,94,23,193,1,250,22, +153,2,23,197,1,11,9,86,94,23,198,1,9,9,247,22,191,14,26,8,2, +93,200,203,204,206,23,15,23,18,200,11,86,95,28,28,248,22,150,14,23,194, +2,10,28,248,22,149,14,23,194,2,10,28,248,22,131,7,23,194,2,28,248, +22,171,14,23,194,2,10,248,22,172,14,23,194,2,11,12,252,22,177,9,23, +200,2,2,42,36,23,198,2,23,199,2,28,28,248,22,131,7,23,195,2,10, +248,22,184,7,23,195,2,86,94,23,194,1,12,252,22,177,9,23,200,2,2, +43,37,23,198,2,23,199,1,90,159,39,11,89,161,39,36,11,248,22,170,14, +23,197,2,86,94,23,195,1,86,94,28,192,12,250,22,178,9,23,201,1,2, +44,23,199,1,249,22,7,194,195,90,159,38,11,89,161,38,36,11,86,95,28, +28,248,22,150,14,23,196,2,10,28,248,22,149,14,23,196,2,10,28,248,22, +131,7,23,196,2,28,248,22,171,14,23,196,2,10,248,22,172,14,23,196,2, +11,12,252,22,177,9,2,25,2,42,36,23,200,2,23,201,2,28,28,248,22, +131,7,23,197,2,10,248,22,184,7,23,197,2,12,252,22,177,9,2,25,2, +43,37,23,200,2,23,201,2,90,159,39,11,89,161,39,36,11,248,22,170,14, +23,199,2,86,94,23,195,1,86,94,28,192,12,250,22,178,9,2,25,2,44, +23,201,2,249,22,7,194,195,27,249,22,159,14,250,22,148,15,0,20,35,114, +120,35,34,40,63,58,91,46,93,91,94,46,93,42,124,41,36,34,248,22,155, +14,23,201,1,28,248,22,131,7,23,203,2,249,22,146,8,23,204,1,8,63, +23,202,1,28,248,22,150,14,23,199,2,248,22,151,14,23,199,1,86,94,23, +198,1,247,22,152,14,28,248,22,149,14,194,249,22,167,14,195,194,192,90,159, +38,11,89,161,38,36,11,86,95,28,28,248,22,150,14,23,196,2,10,28,248, +22,149,14,23,196,2,10,28,248,22,131,7,23,196,2,28,248,22,171,14,23, +196,2,10,248,22,172,14,23,196,2,11,12,252,22,177,9,2,26,2,42,36, +23,200,2,23,201,2,28,28,248,22,131,7,23,197,2,10,248,22,184,7,23, +197,2,12,252,22,177,9,2,26,2,43,37,23,200,2,23,201,2,90,159,39, +11,89,161,39,36,11,248,22,170,14,23,199,2,86,94,23,195,1,86,94,28, +192,12,250,22,178,9,2,26,2,44,23,201,2,249,22,7,194,195,27,249,22, +159,14,249,22,132,8,250,22,149,15,0,9,35,114,120,35,34,91,46,93,34, +248,22,155,14,23,203,1,6,1,1,95,28,248,22,131,7,23,202,2,249,22, +146,8,23,203,1,8,63,23,201,1,28,248,22,150,14,23,199,2,248,22,151, +14,23,199,1,86,94,23,198,1,247,22,152,14,28,248,22,149,14,194,249,22, +167,14,195,194,192,249,247,22,159,5,194,11,27,247,22,129,15,249,80,159,39, +40,38,28,23,195,2,27,248,22,151,8,2,45,28,192,192,2,46,2,47,27, +28,23,196,1,250,22,167,14,248,22,189,14,2,48,247,22,149,8,2,49,11, +27,248,80,159,42,8,28,39,250,22,87,9,248,22,83,248,22,189,14,2,38, +9,28,193,249,22,73,195,194,192,27,247,22,129,15,249,80,159,39,40,38,28, +23,195,2,27,248,22,151,8,2,45,28,192,192,2,46,2,47,27,28,23,196, +1,250,22,167,14,248,22,189,14,2,48,247,22,149,8,2,49,11,27,248,80, +159,42,8,29,39,250,22,87,23,203,1,248,22,83,248,22,189,14,2,38,9, 28,193,249,22,73,195,194,192,27,247,22,129,15,249,80,159,39,40,38,28,23, 195,2,27,248,22,151,8,2,45,28,192,192,2,46,2,47,27,28,23,196,1, 250,22,167,14,248,22,189,14,2,48,247,22,149,8,2,49,11,27,248,80,159, -42,8,29,39,250,22,87,23,203,1,248,22,83,248,22,189,14,2,38,9,28, -193,249,22,73,195,194,192,27,247,22,129,15,249,80,159,39,40,38,28,23,195, -2,27,248,22,151,8,2,45,28,192,192,2,46,2,47,27,28,23,196,1,250, -22,167,14,248,22,189,14,2,48,247,22,149,8,2,49,11,27,248,80,159,42, -8,30,39,250,22,87,23,203,1,248,22,83,248,22,189,14,2,38,23,204,1, -28,193,249,22,73,195,194,192,86,94,249,22,184,6,247,22,155,5,195,248,22, -146,6,249,22,128,4,36,249,22,176,3,197,198,27,28,23,197,2,86,95,23, -196,1,23,195,1,23,197,1,86,94,23,197,1,27,248,22,189,14,2,31,27, -250,80,159,42,39,39,23,197,1,11,11,27,248,22,131,4,23,199,1,27,28, -23,194,2,23,194,1,86,94,23,194,1,36,27,248,22,131,4,23,202,1,27, -28,23,194,2,23,194,1,86,94,23,194,1,36,249,22,186,5,23,199,1,20, -20,95,88,163,8,36,36,48,11,9,224,4,2,33,107,23,195,1,23,197,1, -27,248,22,171,5,23,195,1,248,80,159,39,8,31,39,193,159,36,20,112,159, -36,16,1,11,16,0,20,26,141,2,1,2,1,29,11,11,11,11,11,10,43, -80,158,36,36,20,112,159,40,16,28,2,2,2,3,2,4,2,5,2,6,2, -7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15,30,2,18,76, -102,105,110,100,45,108,105,110,107,115,45,112,97,116,104,33,4,30,2,19,1, -20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121, -6,30,2,19,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101, -114,105,122,97,116,105,111,110,3,2,20,2,21,2,22,30,2,18,1,21,101, -120,99,101,112,116,105,111,110,45,104,97,110,100,108,101,114,45,107,101,121,2, -2,23,2,24,2,25,2,26,2,27,2,28,2,29,16,0,37,39,36,16,0, -36,16,12,2,8,2,7,2,3,2,24,2,22,2,20,2,15,2,21,2,23, -2,13,2,12,2,14,48,11,11,11,16,12,2,11,2,9,2,29,2,10,2, -5,2,28,2,27,2,4,2,26,2,6,2,25,2,2,16,12,11,11,11,11, -11,11,11,11,11,11,11,11,16,12,2,11,2,9,2,29,2,10,2,5,2, -28,2,27,2,4,2,26,2,6,2,25,2,2,48,48,37,12,11,11,16,0, -16,0,16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,28,20, -15,16,2,88,163,8,36,37,51,16,2,8,240,0,128,0,0,8,240,1,128, -0,0,2,30,223,0,33,50,80,159,36,8,31,39,20,15,16,2,88,163,8, -36,37,56,16,2,44,8,240,0,64,0,0,2,30,223,0,33,51,80,159,36, -8,30,39,20,15,16,2,88,163,8,36,37,51,16,2,44,8,128,128,2,30, -223,0,33,52,80,159,36,8,29,39,20,15,16,2,88,163,8,36,37,51,16, -2,44,8,128,64,2,30,223,0,33,53,80,159,36,8,28,39,20,15,16,2, -32,0,88,163,36,37,45,11,2,2,222,33,54,80,159,36,36,37,20,15,16, -2,249,22,133,7,7,92,7,92,80,159,36,37,37,20,15,16,2,88,163,36, -37,54,38,2,4,223,0,33,55,80,159,36,38,37,20,15,16,2,20,25,96, -2,5,88,163,8,36,39,8,24,52,9,223,0,33,62,88,163,36,38,47,44, -9,223,0,33,63,88,163,36,37,46,44,9,223,0,33,64,80,159,36,39,37, -20,15,16,2,27,248,22,133,15,248,22,145,8,27,28,249,22,141,9,247,22, -153,8,2,32,6,1,1,59,6,1,1,58,250,22,179,7,6,14,14,40,91, -94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,88,163,8, -36,38,48,11,2,6,223,0,33,68,80,159,36,40,37,20,15,16,2,32,0, -88,163,8,36,38,50,11,2,7,222,33,69,80,159,36,41,37,20,15,16,2, -32,0,88,163,8,36,39,51,11,2,8,222,33,71,80,159,36,42,37,20,15, -16,2,88,163,45,38,51,8,128,4,2,9,223,0,33,74,80,159,36,43,37, -20,15,16,2,88,163,45,39,52,8,128,4,2,11,223,0,33,77,80,159,36, -45,37,20,15,16,2,248,22,189,14,70,108,105,110,107,115,45,102,105,108,101, -80,159,36,46,37,20,15,16,2,247,22,133,2,80,158,36,47,20,15,16,2, -2,78,80,158,36,48,20,15,16,2,248,80,159,37,50,37,88,163,36,36,49, -8,240,8,128,1,0,9,223,1,33,79,80,159,36,49,37,20,15,16,2,247, -22,133,2,80,158,36,53,20,15,16,2,2,78,80,158,36,54,20,15,16,2, -88,163,36,37,44,8,240,0,188,23,0,2,22,223,0,33,90,80,159,36,55, -37,20,15,16,2,88,163,36,38,56,8,240,0,0,32,0,2,23,223,0,33, -92,80,159,36,57,37,20,15,16,2,88,163,36,41,8,24,8,240,0,32,40, -0,2,10,223,0,33,99,80,159,36,44,37,20,15,16,2,32,0,88,163,36, -39,50,11,2,24,222,33,100,80,159,36,58,37,20,15,16,2,32,0,88,163, -36,38,53,11,2,25,222,33,101,80,159,36,59,37,20,15,16,2,32,0,88, -163,36,38,54,11,2,26,222,33,102,80,159,36,8,24,37,20,15,16,2,32, -0,88,163,36,37,44,11,2,27,222,33,103,80,159,36,8,25,37,20,15,16, -2,20,25,96,2,28,88,163,36,36,53,16,2,52,8,128,64,9,223,0,33, -104,88,163,36,37,54,16,2,52,8,128,128,9,223,0,33,105,88,163,36,38, -55,16,2,52,8,240,0,64,0,0,9,223,0,33,106,80,159,36,8,26,37, -20,15,16,2,88,163,8,36,39,54,16,2,44,8,240,0,128,0,0,2,29, -223,0,33,108,80,159,36,8,27,37,95,29,94,2,16,68,35,37,107,101,114, -110,101,108,11,29,94,2,16,69,35,37,109,105,110,45,115,116,120,11,2,18, -9,9,9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 10420); - } - { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,49,46,51,46,57,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,12,0,0,0,1,0,0,15,0,40,0,57, -0,75,0,97,0,120,0,140,0,162,0,169,0,176,0,183,0,0,0,175,1, -0,0,74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,1,23,115,116, -114,117,99,116,58,84,72,45,112,108,97,99,101,45,99,104,97,110,110,101,108, -76,84,72,45,112,108,97,99,101,45,99,104,97,110,110,101,108,77,84,72,45, -112,108,97,99,101,45,99,104,97,110,110,101,108,63,1,20,84,72,45,112,108, -97,99,101,45,99,104,97,110,110,101,108,45,114,101,102,1,21,84,72,45,112, -108,97,99,101,45,99,104,97,110,110,101,108,45,115,101,116,33,79,84,72,45, -112,108,97,99,101,45,99,104,97,110,110,101,108,45,105,110,1,20,84,72,45, -112,108,97,99,101,45,99,104,97,110,110,101,108,45,111,117,116,249,80,158,38, -39,195,36,249,80,158,38,39,195,36,249,80,158,38,39,195,37,159,36,20,112, +42,8,30,39,250,22,87,23,203,1,248,22,83,248,22,189,14,2,38,23,204, +1,28,193,249,22,73,195,194,192,86,94,249,22,184,6,247,22,155,5,195,248, +22,146,6,249,22,128,4,36,249,22,176,3,197,198,27,28,23,197,2,86,95, +23,196,1,23,195,1,23,197,1,86,94,23,197,1,27,248,22,189,14,2,31, +27,250,80,159,42,39,39,23,197,1,11,11,27,248,22,131,4,23,199,1,27, +28,23,194,2,23,194,1,86,94,23,194,1,36,27,248,22,131,4,23,202,1, +27,28,23,194,2,23,194,1,86,94,23,194,1,36,249,22,186,5,23,199,1, +20,20,95,88,163,8,36,36,48,11,9,224,4,2,33,107,23,195,1,23,197, +1,27,248,22,171,5,23,195,1,248,80,159,39,8,31,39,193,159,36,20,112, 159,36,16,1,11,16,0,20,26,141,2,1,2,1,29,11,11,11,11,11,10, -45,80,158,36,36,20,112,159,36,16,7,2,2,2,3,2,4,2,5,2,6, -2,7,2,8,16,0,37,39,36,16,0,36,16,2,2,5,2,6,38,11,11, -11,16,5,2,3,2,7,2,8,2,4,2,2,16,5,11,11,11,11,11,16, -5,2,3,2,7,2,8,2,4,2,2,41,41,37,12,11,11,16,0,16,0, -16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,2,20,15,16, -6,253,22,177,10,2,3,11,38,36,11,248,22,83,249,22,73,22,165,10,88, -163,36,37,45,44,9,223,9,33,9,80,159,36,36,37,80,159,36,37,37,80, -159,36,38,37,80,159,36,39,37,80,159,36,40,37,20,15,16,3,249,22,7, -88,163,36,37,45,44,9,223,2,33,10,88,163,36,37,45,44,9,223,2,33, -11,80,159,36,41,37,80,159,36,42,37,93,29,94,65,113,117,111,116,101,68, -35,37,107,101,114,110,101,108,11,9,9,9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 496); +43,80,158,36,36,20,112,159,40,16,28,2,2,2,3,2,4,2,5,2,6, +2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15,30,2,18, +76,102,105,110,100,45,108,105,110,107,115,45,112,97,116,104,33,4,30,2,19, +1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101, +121,6,30,2,19,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116, +101,114,105,122,97,116,105,111,110,3,2,20,2,21,2,22,30,2,18,1,21, +101,120,99,101,112,116,105,111,110,45,104,97,110,100,108,101,114,45,107,101,121, +2,2,23,2,24,2,25,2,26,2,27,2,28,2,29,16,0,37,39,36,16, +0,36,16,12,2,8,2,7,2,3,2,24,2,22,2,20,2,15,2,21,2, +23,2,13,2,12,2,14,48,11,11,11,16,12,2,11,2,9,2,29,2,10, +2,5,2,28,2,27,2,4,2,26,2,6,2,25,2,2,16,12,11,11,11, +11,11,11,11,11,11,11,11,11,16,12,2,11,2,9,2,29,2,10,2,5, +2,28,2,27,2,4,2,26,2,6,2,25,2,2,48,48,37,12,11,11,16, +0,16,0,16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,28, +20,15,16,2,88,163,8,36,37,51,16,2,8,240,0,128,0,0,8,240,1, +128,0,0,2,30,223,0,33,50,80,159,36,8,31,39,20,15,16,2,88,163, +8,36,37,56,16,2,44,8,240,0,64,0,0,2,30,223,0,33,51,80,159, +36,8,30,39,20,15,16,2,88,163,8,36,37,51,16,2,44,8,128,128,2, +30,223,0,33,52,80,159,36,8,29,39,20,15,16,2,88,163,8,36,37,51, +16,2,44,8,128,64,2,30,223,0,33,53,80,159,36,8,28,39,20,15,16, +2,32,0,88,163,36,37,45,11,2,2,222,33,54,80,159,36,36,37,20,15, +16,2,249,22,133,7,7,92,7,92,80,159,36,37,37,20,15,16,2,88,163, +36,37,54,38,2,4,223,0,33,55,80,159,36,38,37,20,15,16,2,20,25, +96,2,5,88,163,8,36,39,8,24,52,9,223,0,33,62,88,163,36,38,47, +44,9,223,0,33,63,88,163,36,37,46,44,9,223,0,33,64,80,159,36,39, +37,20,15,16,2,27,248,22,133,15,248,22,145,8,27,28,249,22,141,9,247, +22,153,8,2,32,6,1,1,59,6,1,1,58,250,22,179,7,6,14,14,40, +91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,88,163, +8,36,38,48,11,2,6,223,0,33,68,80,159,36,40,37,20,15,16,2,32, +0,88,163,8,36,38,50,11,2,7,222,33,69,80,159,36,41,37,20,15,16, +2,32,0,88,163,8,36,39,51,11,2,8,222,33,71,80,159,36,42,37,20, +15,16,2,88,163,45,38,51,8,128,4,2,9,223,0,33,74,80,159,36,43, +37,20,15,16,2,88,163,45,39,52,8,128,4,2,11,223,0,33,77,80,159, +36,45,37,20,15,16,2,248,22,189,14,70,108,105,110,107,115,45,102,105,108, +101,80,159,36,46,37,20,15,16,2,247,22,133,2,80,158,36,47,20,15,16, +2,2,78,80,158,36,48,20,15,16,2,248,80,159,37,50,37,88,163,36,36, +49,8,240,8,128,1,0,9,223,1,33,79,80,159,36,49,37,20,15,16,2, +247,22,133,2,80,158,36,53,20,15,16,2,2,78,80,158,36,54,20,15,16, +2,88,163,36,37,44,8,240,0,188,23,0,2,22,223,0,33,90,80,159,36, +55,37,20,15,16,2,88,163,36,38,56,8,240,0,0,32,0,2,23,223,0, +33,92,80,159,36,57,37,20,15,16,2,88,163,36,41,8,24,8,240,0,32, +40,0,2,10,223,0,33,99,80,159,36,44,37,20,15,16,2,32,0,88,163, +36,39,50,11,2,24,222,33,100,80,159,36,58,37,20,15,16,2,32,0,88, +163,36,38,53,11,2,25,222,33,101,80,159,36,59,37,20,15,16,2,32,0, +88,163,36,38,54,11,2,26,222,33,102,80,159,36,8,24,37,20,15,16,2, +32,0,88,163,36,37,44,11,2,27,222,33,103,80,159,36,8,25,37,20,15, +16,2,20,25,96,2,28,88,163,36,36,53,16,2,52,8,128,64,9,223,0, +33,104,88,163,36,37,54,16,2,52,8,128,128,9,223,0,33,105,88,163,36, +38,55,16,2,52,8,240,0,64,0,0,9,223,0,33,106,80,159,36,8,26, +37,20,15,16,2,88,163,8,36,39,54,16,2,44,8,240,0,128,0,0,2, +29,223,0,33,108,80,159,36,8,27,37,95,29,94,2,16,68,35,37,107,101, +114,110,101,108,11,29,94,2,16,69,35,37,109,105,110,45,115,116,120,11,2, +18,9,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 10421); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,49,46,51,46,57,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,65,0,0,0,1,0,0,7,0,18,0,45, -0,51,0,64,0,73,0,80,0,102,0,124,0,150,0,158,0,170,0,185,0, -201,0,219,0,239,0,251,0,11,1,34,1,46,1,77,1,84,1,89,1,94, -1,99,1,104,1,109,1,118,1,123,1,127,1,135,1,144,1,152,1,213,1, -60,2,81,2,102,2,132,2,162,2,220,2,22,3,71,3,120,3,54,9,105, -9,168,9,187,9,201,9,103,10,116,10,250,10,36,12,159,12,165,12,179,12, -206,12,226,12,30,13,117,13,119,13,194,13,27,20,80,20,104,20,0,0,193, -23,0,0,66,35,37,98,111,111,116,70,100,108,108,45,115,117,102,102,105,120, -1,25,100,101,102,97,117,108,116,45,108,111,97,100,47,117,115,101,45,99,111, -109,112,105,108,101,100,65,113,117,111,116,101,29,94,2,4,67,35,37,117,116, -105,108,115,11,68,35,37,112,97,114,97,109,122,29,94,2,4,2,6,11,1, -20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121, -1,20,100,101,102,97,117,108,116,45,114,101,97,100,101,114,45,103,117,97,114, -100,1,24,45,109,111,100,117,108,101,45,104,97,115,104,45,116,97,98,108,101, -45,116,97,98,108,101,67,67,65,67,72,69,45,78,71,45,112,97,116,104,45, -99,97,99,104,101,74,112,97,116,104,45,99,97,99,104,101,45,103,101,116,75, -112,97,116,104,45,99,97,99,104,101,45,115,101,116,33,77,45,108,111,97,100, -105,110,103,45,102,105,108,101,110,97,109,101,79,45,108,111,97,100,105,110,103, -45,112,114,111,109,112,116,45,116,97,103,71,45,112,114,101,118,45,114,101,108, -116,111,75,45,112,114,101,118,45,114,101,108,116,111,45,100,105,114,1,21,115, -112,108,105,116,45,114,101,108,97,116,105,118,101,45,115,116,114,105,110,103,71, -111,114,105,103,45,112,97,114,97,109,122,1,29,115,116,97,110,100,97,114,100, -45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114, -29,94,2,4,2,6,11,64,98,111,111,116,64,115,101,97,108,64,115,97,109, -101,5,3,46,122,111,5,3,46,122,111,6,6,6,110,97,116,105,118,101,64, -108,111,111,112,63,108,105,98,67,105,103,110,111,114,101,100,249,22,14,195,80, -159,38,49,38,249,80,159,38,52,39,195,10,90,159,39,11,89,161,39,36,11, -248,22,170,14,197,86,95,23,195,1,23,193,1,28,249,22,137,15,0,11,35, -114,120,34,91,46,93,115,115,36,34,248,22,154,14,23,197,1,249,80,159,41, -56,39,198,5,4,46,114,107,116,196,27,28,23,195,2,28,249,22,141,9,23, -197,2,80,158,39,50,86,94,23,195,1,80,158,37,51,27,248,22,138,5,23, -197,2,28,248,22,149,14,23,194,2,90,159,39,11,89,161,39,36,11,248,22, -170,14,23,197,1,86,95,20,18,159,11,80,158,41,50,198,20,18,159,11,80, -158,41,51,192,192,11,11,28,23,193,2,192,86,94,23,193,1,27,247,22,160, -5,28,192,192,247,22,190,14,250,22,167,14,23,197,1,23,199,1,249,80,159, -43,39,39,23,198,1,2,26,250,22,167,14,23,197,1,23,199,1,249,80,159, -43,39,39,23,198,1,2,27,252,22,167,14,23,199,1,23,201,1,2,28,247, -22,154,8,249,80,159,45,39,39,23,200,1,80,159,45,36,38,252,22,167,14, -23,199,1,23,201,1,2,28,247,22,154,8,249,80,159,45,39,39,23,200,1, -80,159,45,36,38,27,252,22,167,14,23,200,1,23,202,1,2,28,247,22,154, -8,249,80,159,46,39,39,23,201,1,80,159,46,36,38,27,250,22,184,14,196, -11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,195,194,11, -27,252,22,167,14,23,200,1,23,202,1,2,28,247,22,154,8,249,80,159,46, -39,39,23,201,1,80,159,46,36,38,27,250,22,184,14,196,11,32,0,88,163, -8,36,36,41,11,9,222,11,28,192,249,22,73,195,194,11,27,250,22,167,14, -23,198,1,23,200,1,249,80,159,44,39,39,23,199,1,2,26,27,250,22,184, -14,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,195, -194,11,27,250,22,167,14,23,198,1,23,200,1,249,80,159,44,39,39,23,199, -1,2,27,27,250,22,184,14,196,11,32,0,88,163,8,36,36,41,11,9,222, -11,28,192,249,22,73,195,194,11,86,94,28,248,80,159,37,38,39,23,195,2, -12,250,22,177,9,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108, -101,100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,97, -116,104,32,115,116,114,105,110,103,23,197,2,90,159,46,11,89,161,37,36,11, -28,248,22,173,14,23,205,2,23,204,2,27,247,22,160,5,28,23,193,2,249, -22,174,14,23,207,2,23,195,1,23,205,2,89,161,39,37,11,248,22,170,14, -23,205,1,86,94,23,196,1,89,161,38,40,11,28,23,205,2,27,248,22,154, -14,23,197,2,27,248,22,189,7,23,195,2,28,28,249,22,188,3,23,195,2, -40,249,22,128,8,5,4,46,114,107,116,249,22,131,8,23,198,2,249,22,176, -3,23,199,2,40,11,249,22,7,23,199,2,248,22,158,14,249,22,132,8,250, -22,131,8,23,202,1,36,249,22,176,3,23,203,1,40,5,3,46,115,115,249, -22,7,23,199,2,11,249,22,7,23,197,2,11,89,161,37,42,11,28,249,22, -141,9,23,199,2,23,197,2,23,193,2,249,22,167,14,23,196,2,23,199,2, -89,161,37,43,11,28,23,198,2,28,249,22,141,9,23,200,2,23,197,1,23, -193,1,86,94,23,193,1,249,22,167,14,23,196,2,23,200,2,86,94,23,195, -1,11,89,161,37,44,11,28,249,22,141,9,23,196,2,68,114,101,108,97,116, -105,118,101,86,94,23,194,1,2,25,23,194,1,89,161,37,45,11,247,22,128, -15,27,250,22,184,14,23,203,2,11,32,0,88,163,8,36,36,41,11,9,222, -11,27,28,23,194,2,249,22,73,23,203,2,23,196,1,86,94,23,194,1,11, -27,28,23,203,2,28,23,194,2,11,27,250,22,184,14,23,207,2,11,32,0, -88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,23,206,2,194,11,11, -27,28,23,195,2,23,195,2,23,194,2,27,88,163,36,37,50,44,62,122,111, -225,15,13,9,33,36,27,88,163,36,37,50,44,66,97,108,116,45,122,111,225, -16,14,11,33,37,27,88,163,36,37,52,45,9,225,17,15,11,33,38,27,88, -163,36,37,52,45,9,225,18,16,13,33,39,27,28,23,200,2,23,200,2,248, -22,139,9,23,200,2,27,28,23,208,2,28,23,200,2,86,94,23,201,1,23, -200,2,248,22,139,9,23,202,1,11,27,28,23,195,2,28,23,197,1,27,249, -22,5,88,163,8,36,37,53,45,9,225,24,22,18,33,40,23,216,2,27,28, -23,202,2,11,193,28,192,192,28,193,28,23,202,2,28,249,22,188,3,248,22, -75,196,248,22,75,23,205,2,193,11,11,11,11,86,94,23,197,1,11,28,23, -193,2,86,105,23,213,1,23,211,1,23,210,1,23,209,1,23,208,1,23,201, -1,23,200,1,23,199,1,23,198,1,23,196,1,23,195,1,23,194,1,20,13, -159,80,159,57,40,37,250,80,159,8,24,41,37,249,22,27,11,80,159,8,26, -40,37,22,181,4,11,20,13,159,80,159,57,40,37,250,80,159,8,24,41,37, -249,22,27,11,80,159,8,26,40,37,22,160,5,28,248,22,149,14,23,216,2, -23,215,1,86,94,23,215,1,247,22,190,14,249,247,22,132,15,248,22,74,195, -23,25,86,94,23,193,1,27,28,23,195,2,28,23,197,1,27,249,22,5,88, -163,8,36,37,53,45,9,225,25,23,20,33,41,23,217,2,27,28,23,204,2, -11,193,28,192,192,28,193,28,203,28,249,22,188,3,248,22,75,196,248,22,75, -206,193,11,11,11,11,86,94,23,197,1,11,28,23,193,2,86,102,23,214,1, -23,211,1,23,210,1,23,209,1,23,201,1,23,200,1,23,199,1,23,196,1, -23,195,1,20,13,159,80,159,58,40,37,250,80,159,8,25,41,37,249,22,27, -11,80,159,8,27,40,37,22,181,4,23,215,1,20,13,159,80,159,58,40,37, -250,80,159,8,25,41,37,249,22,27,11,80,159,8,27,40,37,22,160,5,28, -248,22,149,14,23,217,2,23,216,1,86,94,23,216,1,247,22,190,14,249,247, -22,132,15,248,22,74,195,23,26,86,94,23,193,1,27,28,23,197,2,28,23, -201,1,27,249,22,5,20,20,94,88,163,8,36,37,51,44,9,225,26,24,20, -33,42,23,213,1,23,218,2,27,28,23,204,2,11,193,28,192,192,28,193,28, -23,204,2,28,249,22,188,3,248,22,75,196,248,22,75,23,207,2,193,11,11, -11,86,94,23,210,1,11,86,94,23,201,1,11,28,23,193,2,86,101,23,215, -1,23,213,1,23,212,1,23,211,1,23,202,1,23,200,1,23,197,1,23,196, -1,20,13,159,80,159,59,40,37,250,80,159,8,26,41,37,249,22,27,11,80, -159,8,28,40,37,22,181,4,11,20,13,159,80,159,59,40,37,250,80,159,8, -26,41,37,249,22,27,11,80,159,8,28,40,37,22,160,5,28,248,22,149,14, -23,218,2,23,217,1,86,94,23,217,1,247,22,190,14,249,247,22,158,5,248, -22,74,195,23,27,86,94,23,193,1,27,28,23,197,1,28,23,201,1,27,249, -22,5,20,20,94,88,163,8,36,37,51,44,9,225,27,25,22,33,43,23,215, -1,23,219,1,27,28,23,205,2,11,193,28,192,192,28,193,28,204,28,249,22, -188,3,248,22,75,196,248,22,75,23,15,193,11,11,11,86,95,23,216,1,23, -212,1,11,86,94,23,201,1,11,28,23,193,2,86,95,23,213,1,23,198,1, -20,13,159,80,159,8,24,40,37,250,80,159,8,27,41,37,249,22,27,11,80, -159,8,29,40,37,22,181,4,23,217,1,20,13,159,80,159,8,24,40,37,250, -80,159,8,27,41,37,249,22,27,11,80,159,8,29,40,37,22,160,5,28,248, -22,149,14,23,219,2,23,218,1,86,94,23,218,1,247,22,190,14,249,247,22, -158,5,248,22,74,195,23,28,86,94,23,193,1,27,28,23,199,2,86,94,23, -215,1,23,214,1,86,94,23,214,1,23,215,1,20,13,159,80,159,8,25,40, -37,250,80,159,8,28,41,37,249,22,27,11,80,159,8,30,40,37,22,181,4, -28,23,30,28,23,202,1,11,195,86,94,23,202,1,11,20,13,159,80,159,8, -25,40,37,250,80,159,8,28,41,37,249,22,27,11,80,159,8,30,40,37,22, -160,5,28,248,22,149,14,23,220,2,23,219,1,86,94,23,219,1,247,22,190, -14,249,247,22,158,5,194,23,29,27,249,22,161,8,80,159,39,45,38,249,22, -183,3,248,22,179,3,248,22,166,2,200,8,128,8,27,28,193,248,22,169,2, -194,11,28,192,27,249,22,96,198,195,28,192,248,22,75,193,11,11,27,249,22, -183,3,248,22,179,3,248,22,166,2,198,8,128,8,27,249,22,161,8,80,159, -40,45,38,195,27,28,193,248,22,169,2,194,11,250,22,162,8,80,159,42,45, -38,197,248,22,168,2,249,22,73,249,22,73,204,205,28,198,198,9,0,17,35, -114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,32,48,88,163,8, -36,37,59,11,2,29,222,33,49,27,249,22,137,15,2,47,23,196,2,28,23, -193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,27,248,22,107,23, -197,1,27,249,22,137,15,2,47,23,196,2,28,23,193,2,86,94,23,194,1, -249,22,73,248,22,98,23,196,2,27,248,22,107,23,197,1,27,249,22,137,15, -2,47,23,196,2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98,23, -196,2,27,248,22,107,23,197,1,27,249,22,137,15,2,47,23,196,2,28,23, -193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,248,2,48,248,22, -107,23,197,1,248,22,83,194,248,22,83,194,248,22,83,194,248,22,83,194,32, -50,88,163,36,37,55,11,2,29,222,33,51,28,248,22,81,248,22,75,23,195, -2,249,22,7,9,248,22,74,195,90,159,38,11,89,161,38,36,11,27,248,22, -75,196,28,248,22,81,248,22,75,23,195,2,249,22,7,9,248,22,74,195,90, -159,38,11,89,161,38,36,11,27,248,22,75,196,28,248,22,81,248,22,75,23, -195,2,249,22,7,9,248,22,74,195,90,159,38,11,89,161,38,36,11,248,2, -50,248,22,75,196,249,22,7,249,22,73,248,22,74,199,196,195,249,22,7,249, -22,73,248,22,74,199,196,195,249,22,7,249,22,73,248,22,74,199,196,195,27, -27,249,22,137,15,2,47,23,197,2,28,23,193,2,86,94,23,195,1,249,22, -73,248,22,98,23,196,2,27,248,22,107,23,197,1,27,249,22,137,15,2,47, -23,196,2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2, -27,248,22,107,23,197,1,27,249,22,137,15,2,47,23,196,2,28,23,193,2, -86,94,23,194,1,249,22,73,248,22,98,23,196,2,27,248,22,107,23,197,1, -27,249,22,137,15,2,47,23,196,2,28,23,193,2,86,94,23,194,1,249,22, -73,248,22,98,23,196,2,248,2,48,248,22,107,23,197,1,248,22,83,194,248, -22,83,194,248,22,83,194,248,22,83,195,28,23,195,1,192,28,248,22,81,248, -22,75,23,195,2,249,22,7,9,248,22,74,195,27,248,22,75,194,90,159,38, -11,89,161,38,36,11,28,248,22,81,248,22,75,23,197,2,249,22,7,9,248, -22,74,197,27,248,22,75,196,90,159,38,11,89,161,38,36,11,28,248,22,81, -248,22,75,23,197,2,249,22,7,9,248,22,74,197,90,159,38,11,89,161,38, -36,11,248,2,50,248,22,75,198,249,22,7,249,22,73,248,22,74,201,196,195, -249,22,7,249,22,73,248,22,74,202,196,195,249,22,7,249,22,73,248,22,74, -200,196,195,86,95,28,248,22,136,5,195,12,250,22,177,9,2,21,6,20,20, -114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,197, -28,24,193,2,248,24,194,1,195,86,94,23,193,1,12,27,250,22,153,2,80, -159,41,43,38,248,22,162,15,247,22,191,12,11,27,28,23,194,2,193,86,94, -23,194,1,27,247,22,133,2,86,94,250,22,151,2,80,159,43,43,38,248,22, -162,15,247,22,191,12,195,192,250,22,151,2,195,199,66,97,116,116,97,99,104, -251,211,197,198,199,10,28,192,250,22,176,9,11,196,195,248,22,174,9,194,28, -249,22,137,7,194,6,1,1,46,2,25,28,249,22,137,7,194,6,2,2,46, -46,62,117,112,192,32,57,88,163,8,36,37,50,11,67,115,115,45,62,114,107, -116,222,33,58,27,248,22,134,7,194,28,249,22,188,3,194,39,28,249,22,137, -7,6,3,3,46,115,115,249,22,153,7,197,249,22,176,3,198,39,249,22,154, -7,250,22,153,7,198,36,249,22,176,3,199,39,6,4,4,46,114,107,116,193, -193,28,249,22,143,9,248,22,75,23,200,2,23,197,1,28,249,22,141,9,248, -22,74,23,200,2,23,196,1,251,22,174,9,2,21,6,28,28,99,121,99,108, -101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,46,115,58,32, -126,46,115,23,200,1,249,22,2,22,75,248,22,88,249,22,73,23,206,1,23, -202,1,12,12,247,192,20,13,159,80,159,41,48,38,249,22,73,249,22,73,248, -22,162,15,247,22,191,12,23,200,1,23,195,1,20,13,159,80,159,41,40,37, -250,80,159,44,41,37,249,22,27,11,80,159,46,40,37,22,180,4,23,197,1, -249,247,22,159,5,23,199,1,248,22,61,248,22,153,14,23,199,1,86,94,28, -28,248,22,149,14,23,196,2,10,248,22,144,5,23,196,2,12,28,23,197,2, -250,22,176,9,11,6,15,15,98,97,100,32,109,111,100,117,108,101,32,112,97, -116,104,23,200,2,250,22,177,9,2,21,6,19,19,109,111,100,117,108,101,45, -112,97,116,104,32,111,114,32,112,97,116,104,23,198,2,28,28,248,22,71,23, -196,2,249,22,141,9,248,22,74,23,198,2,2,4,11,248,22,137,5,248,22, -98,196,28,28,248,22,71,23,196,2,249,22,141,9,248,22,74,23,198,2,66, -112,108,97,110,101,116,11,86,94,28,207,12,20,13,159,80,159,37,55,37,80, -158,37,53,89,161,37,36,10,249,22,182,4,21,94,2,30,6,19,19,112,108, -97,110,101,116,47,114,101,115,111,108,118,101,114,46,114,107,116,1,27,112,108, -97,110,101,116,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111, -108,118,101,114,12,252,212,199,200,201,202,80,158,42,53,86,94,23,193,1,27, -88,163,8,36,37,46,11,79,115,104,111,119,45,99,111,108,108,101,99,116,105, -111,110,45,101,114,114,223,5,33,55,27,28,248,22,58,23,198,2,27,248,80, -159,41,46,39,249,22,73,23,201,2,247,22,191,14,28,23,193,2,192,86,94, -23,193,1,90,159,38,11,89,161,38,36,11,249,80,159,44,52,39,248,22,64, -23,203,2,11,27,28,248,22,81,23,195,2,6,8,8,109,97,105,110,46,114, -107,116,249,22,154,7,23,197,2,6,4,4,46,114,107,116,27,252,80,159,49, -57,39,2,21,23,204,1,28,248,22,81,23,201,2,23,201,1,86,94,23,201, -1,248,22,74,23,201,2,28,248,22,81,23,201,2,86,94,23,200,1,9,248, -22,75,23,201,1,23,199,2,249,22,167,14,23,195,1,23,196,1,28,248,22, -131,7,23,198,2,86,94,23,194,1,27,248,80,159,41,8,26,39,23,200,2, -27,248,80,159,42,46,39,249,22,73,23,202,2,23,197,2,28,23,193,2,192, -86,94,23,193,1,90,159,38,11,89,161,38,36,11,249,80,159,45,52,39,23, -203,2,11,250,22,1,22,167,14,23,199,1,249,22,87,249,22,2,32,0,88, -163,8,36,37,44,11,9,222,33,56,23,200,1,248,22,83,248,2,57,23,201, -1,28,248,22,149,14,23,198,2,86,94,23,194,1,28,248,22,172,14,23,198, -2,248,80,159,40,8,27,39,248,22,176,14,23,199,2,248,22,83,6,26,26, -32,40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98,115,111, -108,117,116,101,41,28,249,22,141,9,248,22,74,23,200,2,2,30,27,248,80, -159,41,46,39,249,22,73,23,201,2,247,22,191,14,28,23,193,2,192,86,94, -23,193,1,90,159,39,11,89,161,38,36,11,249,80,159,45,52,39,248,22,98, -23,204,2,11,89,161,37,38,11,28,248,22,81,248,22,100,23,203,2,28,248, -22,81,23,194,2,249,22,141,15,0,8,35,114,120,34,91,46,93,34,23,196, -2,11,10,27,28,23,196,2,248,2,57,23,196,2,28,248,22,81,23,195,2, -6,8,8,109,97,105,110,46,114,107,116,28,249,22,141,15,0,8,35,114,120, -34,91,46,93,34,23,197,2,248,2,57,23,196,2,249,22,154,7,23,197,2, -6,4,4,46,114,107,116,27,28,23,197,1,86,94,23,196,1,249,22,87,28, -248,22,81,248,22,100,23,207,2,21,93,6,5,5,109,122,108,105,98,249,22, -1,22,87,249,22,2,80,159,51,8,28,39,248,22,100,23,210,2,23,197,1, -28,248,22,81,23,196,2,86,94,23,195,1,248,22,83,23,197,1,86,94,23, -196,1,23,195,1,27,252,80,159,51,57,39,2,21,23,206,1,248,22,74,23, -200,2,248,22,75,23,200,1,23,200,2,249,22,167,14,23,195,1,23,197,1, -28,249,22,141,9,248,22,74,23,200,2,64,102,105,108,101,248,80,159,40,8, -27,39,248,22,176,14,249,22,174,14,248,22,178,14,248,22,98,23,203,2,248, -80,159,44,8,26,39,23,203,2,12,86,94,28,28,248,22,149,14,23,194,2, -10,248,22,156,8,23,194,2,86,94,23,199,1,12,28,23,199,2,250,22,176, -9,67,114,101,113,117,105,114,101,249,22,179,7,6,17,17,98,97,100,32,109, -111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,74,23,199, -2,6,0,0,23,202,1,86,94,23,199,1,250,22,177,9,2,21,249,22,179, -7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2, -248,22,74,23,199,2,6,0,0,23,200,2,27,28,248,22,156,8,23,195,2, -249,22,161,8,23,196,2,36,249,22,176,14,248,22,177,14,23,197,2,11,27, -28,248,22,156,8,23,196,2,249,22,161,8,23,197,2,37,248,80,159,42,58, -39,23,195,2,90,159,39,11,89,161,39,36,11,28,248,22,156,8,23,199,2, -250,22,7,2,31,249,22,161,8,23,203,2,38,2,31,248,22,170,14,23,198, -2,86,95,23,195,1,23,193,1,27,28,248,22,156,8,23,200,2,249,22,161, -8,23,201,2,39,249,80,159,47,56,39,23,197,2,5,0,27,28,248,22,156, -8,23,201,2,249,22,161,8,23,202,2,40,248,22,137,5,23,200,2,27,27, -250,22,153,2,80,159,51,43,38,248,22,162,15,247,22,191,12,11,28,23,193, -2,192,86,94,23,193,1,27,247,22,133,2,86,94,250,22,151,2,80,159,52, -43,38,248,22,162,15,247,22,191,12,195,192,86,95,28,23,208,1,27,250,22, -153,2,23,197,2,197,11,28,23,193,1,12,86,94,27,27,28,248,22,17,80, -159,51,49,38,80,159,50,49,38,247,22,19,251,22,27,11,80,159,54,48,38, -9,23,197,1,27,248,22,162,15,247,22,191,12,86,94,249,22,3,20,20,94, -88,163,8,36,37,55,11,9,226,12,11,2,3,33,59,23,195,1,23,196,2, -248,28,248,22,17,80,159,52,49,38,32,0,88,163,36,37,42,11,9,222,33, -60,80,159,51,8,29,39,20,20,94,88,163,36,36,52,8,176,64,9,228,15, -11,10,6,5,2,33,61,23,195,1,250,22,151,2,23,197,1,197,10,12,28, -28,248,22,156,8,23,202,1,11,28,248,22,131,7,23,206,2,10,28,248,22, -58,23,206,2,10,28,248,22,71,23,206,2,249,22,141,9,248,22,74,23,208, -2,2,30,11,27,28,248,22,131,7,23,207,2,249,22,73,23,208,1,248,80, -159,51,8,26,39,23,210,1,86,94,23,207,1,249,22,73,23,208,1,247,22, -191,14,27,249,22,183,3,248,22,179,3,248,22,166,2,23,198,2,8,128,8, -27,249,22,161,8,80,159,52,45,38,23,196,2,27,28,23,194,2,248,22,169, -2,23,195,1,86,94,23,194,1,11,250,22,162,8,80,159,54,45,38,23,198, -1,248,22,168,2,249,22,73,249,22,73,23,204,1,252,22,158,8,23,217,1, -23,216,1,23,214,1,23,212,1,23,18,28,23,199,2,23,199,1,86,94,23, -199,1,9,12,193,86,96,20,18,159,11,80,158,36,53,248,80,159,37,8,25, -37,249,22,27,11,80,159,39,55,37,248,22,179,4,80,159,37,54,38,248,22, -159,5,80,159,37,37,39,248,22,182,13,80,159,37,42,39,20,18,159,11,80, -158,36,53,248,80,159,37,8,25,37,249,22,27,11,80,159,39,55,37,159,36, -20,112,159,36,16,1,11,16,0,20,26,141,2,1,2,1,29,11,11,11,11, -11,10,38,80,158,36,36,20,112,159,40,16,26,2,2,2,3,30,2,5,72, -112,97,116,104,45,115,116,114,105,110,103,63,11,30,2,5,75,112,97,116,104, -45,97,100,100,45,115,117,102,102,105,120,8,30,2,7,2,8,6,30,2,7, -1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97, -116,105,111,110,3,2,9,2,10,2,11,2,12,2,13,2,14,2,15,2,16, -2,17,2,18,2,19,2,20,2,21,30,2,22,2,8,6,30,2,5,79,112, -97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120,10,30,2, -5,73,102,105,110,100,45,99,111,108,45,102,105,108,101,3,30,2,5,76,110, -111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,7,2,23,2,24,30, -2,22,74,114,101,112,97,114,97,109,101,116,101,114,105,122,101,7,16,0,37, -39,36,16,0,36,16,14,2,15,2,16,2,10,2,12,2,17,2,18,2,11, -2,3,2,9,2,2,2,13,2,14,2,19,2,21,50,11,11,11,16,3,2, -23,2,20,2,24,16,3,11,11,11,16,3,2,23,2,20,2,24,39,39,37, -12,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16,0,16,0,16,0, -36,36,16,21,20,15,16,2,88,163,36,37,45,8,128,128,9,223,0,33,32, -80,159,36,8,29,39,20,15,16,2,88,163,8,36,37,45,8,240,0,0,1, -0,9,223,0,33,33,80,159,36,8,28,39,20,15,16,2,88,163,36,37,49, -8,240,0,0,16,0,72,112,97,116,104,45,115,115,45,62,114,107,116,223,0, -33,34,80,159,36,8,27,39,20,15,16,2,88,163,36,37,49,8,240,0,192, -0,0,67,103,101,116,45,100,105,114,223,0,33,35,80,159,36,8,26,39,20, -15,16,2,248,22,153,8,69,115,111,45,115,117,102,102,105,120,80,159,36,36, -37,20,15,16,2,88,163,36,38,8,38,8,61,2,3,223,0,33,44,80,159, -36,37,37,20,15,16,2,32,0,88,163,8,36,37,42,11,2,9,222,192,80, -159,36,42,37,20,15,16,2,247,22,136,2,80,159,36,43,37,20,15,16,2, -8,128,8,80,159,36,44,37,20,15,16,2,249,22,157,8,8,128,8,11,80, -159,36,45,37,20,15,16,2,88,163,8,36,37,50,8,128,8,2,13,223,0, -33,45,80,159,36,46,37,20,15,16,2,88,163,8,36,38,55,8,128,8,2, -14,223,0,33,46,80,159,36,47,37,20,15,16,2,247,22,69,80,159,36,48, -37,20,15,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,97,100,105, -110,103,80,159,36,49,37,20,15,16,2,11,80,158,36,50,20,15,16,2,11, -80,158,36,51,20,15,16,2,32,0,88,163,36,38,8,25,11,2,19,222,33, -52,80,159,36,52,37,20,15,16,2,11,80,158,36,53,20,15,16,2,27,11, -20,19,158,36,90,159,37,10,89,161,37,36,10,20,25,96,2,21,88,163,8, -36,37,51,8,128,2,9,224,2,1,33,53,88,163,36,39,49,11,9,223,0, -33,54,88,163,36,40,8,38,16,2,8,176,218,8,187,241,9,224,2,1,33, -62,207,80,159,36,54,37,20,15,16,2,88,163,36,36,45,8,240,66,0,14, -2,2,23,223,0,33,63,80,159,36,59,37,20,15,16,2,88,163,8,36,36, -45,8,240,0,0,10,2,2,24,223,0,33,64,80,159,36,8,24,37,96,29, -94,2,4,68,35,37,107,101,114,110,101,108,11,29,94,2,4,69,35,37,109, -105,110,45,115,116,120,11,2,5,2,22,9,9,9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 6252); + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,48,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,12,0,0,0,1,0,0,15,0,40,0, +57,0,75,0,97,0,120,0,140,0,162,0,169,0,176,0,183,0,0,0,175, +1,0,0,74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,1,23,115, +116,114,117,99,116,58,84,72,45,112,108,97,99,101,45,99,104,97,110,110,101, +108,76,84,72,45,112,108,97,99,101,45,99,104,97,110,110,101,108,77,84,72, +45,112,108,97,99,101,45,99,104,97,110,110,101,108,63,1,20,84,72,45,112, +108,97,99,101,45,99,104,97,110,110,101,108,45,114,101,102,1,21,84,72,45, +112,108,97,99,101,45,99,104,97,110,110,101,108,45,115,101,116,33,79,84,72, +45,112,108,97,99,101,45,99,104,97,110,110,101,108,45,105,110,1,20,84,72, +45,112,108,97,99,101,45,99,104,97,110,110,101,108,45,111,117,116,249,80,158, +38,39,195,36,249,80,158,38,39,195,36,249,80,158,38,39,195,37,159,36,20, +112,159,36,16,1,11,16,0,20,26,141,2,1,2,1,29,11,11,11,11,11, +10,45,80,158,36,36,20,112,159,36,16,7,2,2,2,3,2,4,2,5,2, +6,2,7,2,8,16,0,37,39,36,16,0,36,16,2,2,5,2,6,38,11, +11,11,16,5,2,3,2,7,2,8,2,4,2,2,16,5,11,11,11,11,11, +16,5,2,3,2,7,2,8,2,4,2,2,41,41,37,12,11,11,16,0,16, +0,16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,2,20,15, +16,6,253,22,177,10,2,3,11,38,36,11,248,22,83,249,22,73,22,165,10, +88,163,36,37,45,44,9,223,9,33,9,80,159,36,36,37,80,159,36,37,37, +80,159,36,38,37,80,159,36,39,37,80,159,36,40,37,20,15,16,3,249,22, +7,88,163,36,37,45,44,9,223,2,33,10,88,163,36,37,45,44,9,223,2, +33,11,80,159,36,41,37,80,159,36,42,37,93,29,94,65,113,117,111,116,101, +68,35,37,107,101,114,110,101,108,11,9,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 497); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,49,46,51,46,57,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,11,0,0,0,1,0,0,10,0,16,0,29, -0,44,0,58,0,78,0,90,0,104,0,118,0,170,0,0,0,94,1,0,0, -69,35,37,98,117,105,108,116,105,110,65,113,117,111,116,101,29,94,2,2,67, -35,37,117,116,105,108,115,11,29,94,2,2,69,35,37,110,101,116,119,111,114, -107,11,29,94,2,2,68,35,37,112,97,114,97,109,122,11,29,94,2,2,74, -35,37,112,108,97,99,101,45,115,116,114,117,99,116,11,29,94,2,2,66,35, -37,98,111,111,116,11,29,94,2,2,68,35,37,101,120,112,111,98,115,11,29, -94,2,2,68,35,37,107,101,114,110,101,108,11,97,36,11,8,240,11,78,0, -0,100,159,2,3,36,36,159,2,4,36,36,159,2,5,36,36,159,2,6,36, -36,159,2,7,36,36,159,2,8,36,36,159,2,9,36,36,159,2,9,36,36, -16,0,159,36,20,112,159,36,16,1,11,16,0,20,26,141,2,1,2,1,29, -11,11,11,11,11,18,96,11,46,46,46,36,80,158,36,36,20,112,159,36,16, -0,16,0,37,39,36,16,0,36,16,0,36,11,11,11,16,0,16,0,16,0, -36,36,37,12,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16,0,16, -0,16,0,36,36,16,0,104,2,9,2,8,29,94,2,2,69,35,37,102,111, -114,101,105,103,110,11,29,94,2,2,68,35,37,117,110,115,97,102,101,11,29, -94,2,2,69,35,37,102,108,102,120,110,117,109,11,2,7,2,6,2,5,2, -4,2,3,29,94,2,2,67,35,37,112,108,97,99,101,11,29,94,2,2,69, -35,37,102,117,116,117,114,101,115,11,9,9,9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 413); + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,48,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,65,0,0,0,1,0,0,7,0,18,0, +45,0,51,0,64,0,73,0,80,0,102,0,124,0,150,0,158,0,170,0,185, +0,201,0,219,0,239,0,251,0,11,1,34,1,46,1,77,1,84,1,89,1, +94,1,99,1,104,1,109,1,118,1,123,1,127,1,135,1,144,1,152,1,213, +1,60,2,81,2,102,2,132,2,162,2,220,2,22,3,71,3,120,3,54,9, +105,9,168,9,187,9,201,9,103,10,116,10,250,10,36,12,159,12,165,12,179, +12,206,12,226,12,30,13,117,13,119,13,194,13,27,20,80,20,104,20,0,0, +193,23,0,0,66,35,37,98,111,111,116,70,100,108,108,45,115,117,102,102,105, +120,1,25,100,101,102,97,117,108,116,45,108,111,97,100,47,117,115,101,45,99, +111,109,112,105,108,101,100,65,113,117,111,116,101,29,94,2,4,67,35,37,117, +116,105,108,115,11,68,35,37,112,97,114,97,109,122,29,94,2,4,2,6,11, +1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101, +121,1,20,100,101,102,97,117,108,116,45,114,101,97,100,101,114,45,103,117,97, +114,100,1,24,45,109,111,100,117,108,101,45,104,97,115,104,45,116,97,98,108, +101,45,116,97,98,108,101,67,67,65,67,72,69,45,78,71,45,112,97,116,104, +45,99,97,99,104,101,74,112,97,116,104,45,99,97,99,104,101,45,103,101,116, +75,112,97,116,104,45,99,97,99,104,101,45,115,101,116,33,77,45,108,111,97, +100,105,110,103,45,102,105,108,101,110,97,109,101,79,45,108,111,97,100,105,110, +103,45,112,114,111,109,112,116,45,116,97,103,71,45,112,114,101,118,45,114,101, +108,116,111,75,45,112,114,101,118,45,114,101,108,116,111,45,100,105,114,1,21, +115,112,108,105,116,45,114,101,108,97,116,105,118,101,45,115,116,114,105,110,103, +71,111,114,105,103,45,112,97,114,97,109,122,1,29,115,116,97,110,100,97,114, +100,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101, +114,29,94,2,4,2,6,11,64,98,111,111,116,64,115,101,97,108,64,115,97, +109,101,5,3,46,122,111,5,3,46,122,111,6,6,6,110,97,116,105,118,101, +64,108,111,111,112,63,108,105,98,67,105,103,110,111,114,101,100,249,22,14,195, +80,159,38,49,38,249,80,159,38,52,39,195,10,90,159,39,11,89,161,39,36, +11,248,22,170,14,197,86,95,23,195,1,23,193,1,28,249,22,137,15,0,11, +35,114,120,34,91,46,93,115,115,36,34,248,22,154,14,23,197,1,249,80,159, +41,56,39,198,5,4,46,114,107,116,196,27,28,23,195,2,28,249,22,141,9, +23,197,2,80,158,39,50,86,94,23,195,1,80,158,37,51,27,248,22,138,5, +23,197,2,28,248,22,149,14,23,194,2,90,159,39,11,89,161,39,36,11,248, +22,170,14,23,197,1,86,95,20,18,159,11,80,158,41,50,198,20,18,159,11, +80,158,41,51,192,192,11,11,28,23,193,2,192,86,94,23,193,1,27,247,22, +160,5,28,192,192,247,22,190,14,250,22,167,14,23,197,1,23,199,1,249,80, +159,43,39,39,23,198,1,2,26,250,22,167,14,23,197,1,23,199,1,249,80, +159,43,39,39,23,198,1,2,27,252,22,167,14,23,199,1,23,201,1,2,28, +247,22,154,8,249,80,159,45,39,39,23,200,1,80,159,45,36,38,252,22,167, +14,23,199,1,23,201,1,2,28,247,22,154,8,249,80,159,45,39,39,23,200, +1,80,159,45,36,38,27,252,22,167,14,23,200,1,23,202,1,2,28,247,22, +154,8,249,80,159,46,39,39,23,201,1,80,159,46,36,38,27,250,22,184,14, +196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,195,194, +11,27,252,22,167,14,23,200,1,23,202,1,2,28,247,22,154,8,249,80,159, +46,39,39,23,201,1,80,159,46,36,38,27,250,22,184,14,196,11,32,0,88, +163,8,36,36,41,11,9,222,11,28,192,249,22,73,195,194,11,27,250,22,167, +14,23,198,1,23,200,1,249,80,159,44,39,39,23,199,1,2,26,27,250,22, +184,14,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,73, +195,194,11,27,250,22,167,14,23,198,1,23,200,1,249,80,159,44,39,39,23, +199,1,2,27,27,250,22,184,14,196,11,32,0,88,163,8,36,36,41,11,9, +222,11,28,192,249,22,73,195,194,11,86,94,28,248,80,159,37,38,39,23,195, +2,12,250,22,177,9,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105, +108,101,100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112, +97,116,104,32,115,116,114,105,110,103,23,197,2,90,159,46,11,89,161,37,36, +11,28,248,22,173,14,23,205,2,23,204,2,27,247,22,160,5,28,23,193,2, +249,22,174,14,23,207,2,23,195,1,23,205,2,89,161,39,37,11,248,22,170, +14,23,205,1,86,94,23,196,1,89,161,38,40,11,28,23,205,2,27,248,22, +154,14,23,197,2,27,248,22,189,7,23,195,2,28,28,249,22,188,3,23,195, +2,40,249,22,128,8,5,4,46,114,107,116,249,22,131,8,23,198,2,249,22, +176,3,23,199,2,40,11,249,22,7,23,199,2,248,22,158,14,249,22,132,8, +250,22,131,8,23,202,1,36,249,22,176,3,23,203,1,40,5,3,46,115,115, +249,22,7,23,199,2,11,249,22,7,23,197,2,11,89,161,37,42,11,28,249, +22,141,9,23,199,2,23,197,2,23,193,2,249,22,167,14,23,196,2,23,199, +2,89,161,37,43,11,28,23,198,2,28,249,22,141,9,23,200,2,23,197,1, +23,193,1,86,94,23,193,1,249,22,167,14,23,196,2,23,200,2,86,94,23, +195,1,11,89,161,37,44,11,28,249,22,141,9,23,196,2,68,114,101,108,97, +116,105,118,101,86,94,23,194,1,2,25,23,194,1,89,161,37,45,11,247,22, +128,15,27,250,22,184,14,23,203,2,11,32,0,88,163,8,36,36,41,11,9, +222,11,27,28,23,194,2,249,22,73,23,203,2,23,196,1,86,94,23,194,1, +11,27,28,23,203,2,28,23,194,2,11,27,250,22,184,14,23,207,2,11,32, +0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,23,206,2,194,11, +11,27,28,23,195,2,23,195,2,23,194,2,27,88,163,36,37,50,44,62,122, +111,225,15,13,9,33,36,27,88,163,36,37,50,44,66,97,108,116,45,122,111, +225,16,14,11,33,37,27,88,163,36,37,52,45,9,225,17,15,11,33,38,27, +88,163,36,37,52,45,9,225,18,16,13,33,39,27,28,23,200,2,23,200,2, +248,22,139,9,23,200,2,27,28,23,208,2,28,23,200,2,86,94,23,201,1, +23,200,2,248,22,139,9,23,202,1,11,27,28,23,195,2,28,23,197,1,27, +249,22,5,88,163,8,36,37,53,45,9,225,24,22,18,33,40,23,216,2,27, +28,23,202,2,11,193,28,192,192,28,193,28,23,202,2,28,249,22,188,3,248, +22,75,196,248,22,75,23,205,2,193,11,11,11,11,86,94,23,197,1,11,28, +23,193,2,86,105,23,213,1,23,211,1,23,210,1,23,209,1,23,208,1,23, +201,1,23,200,1,23,199,1,23,198,1,23,196,1,23,195,1,23,194,1,20, +13,159,80,159,57,40,37,250,80,159,8,24,41,37,249,22,27,11,80,159,8, +26,40,37,22,181,4,11,20,13,159,80,159,57,40,37,250,80,159,8,24,41, +37,249,22,27,11,80,159,8,26,40,37,22,160,5,28,248,22,149,14,23,216, +2,23,215,1,86,94,23,215,1,247,22,190,14,249,247,22,132,15,248,22,74, +195,23,25,86,94,23,193,1,27,28,23,195,2,28,23,197,1,27,249,22,5, +88,163,8,36,37,53,45,9,225,25,23,20,33,41,23,217,2,27,28,23,204, +2,11,193,28,192,192,28,193,28,203,28,249,22,188,3,248,22,75,196,248,22, +75,206,193,11,11,11,11,86,94,23,197,1,11,28,23,193,2,86,102,23,214, +1,23,211,1,23,210,1,23,209,1,23,201,1,23,200,1,23,199,1,23,196, +1,23,195,1,20,13,159,80,159,58,40,37,250,80,159,8,25,41,37,249,22, +27,11,80,159,8,27,40,37,22,181,4,23,215,1,20,13,159,80,159,58,40, +37,250,80,159,8,25,41,37,249,22,27,11,80,159,8,27,40,37,22,160,5, +28,248,22,149,14,23,217,2,23,216,1,86,94,23,216,1,247,22,190,14,249, +247,22,132,15,248,22,74,195,23,26,86,94,23,193,1,27,28,23,197,2,28, +23,201,1,27,249,22,5,20,20,94,88,163,8,36,37,51,44,9,225,26,24, +20,33,42,23,213,1,23,218,2,27,28,23,204,2,11,193,28,192,192,28,193, +28,23,204,2,28,249,22,188,3,248,22,75,196,248,22,75,23,207,2,193,11, +11,11,86,94,23,210,1,11,86,94,23,201,1,11,28,23,193,2,86,101,23, +215,1,23,213,1,23,212,1,23,211,1,23,202,1,23,200,1,23,197,1,23, +196,1,20,13,159,80,159,59,40,37,250,80,159,8,26,41,37,249,22,27,11, +80,159,8,28,40,37,22,181,4,11,20,13,159,80,159,59,40,37,250,80,159, +8,26,41,37,249,22,27,11,80,159,8,28,40,37,22,160,5,28,248,22,149, +14,23,218,2,23,217,1,86,94,23,217,1,247,22,190,14,249,247,22,158,5, +248,22,74,195,23,27,86,94,23,193,1,27,28,23,197,1,28,23,201,1,27, +249,22,5,20,20,94,88,163,8,36,37,51,44,9,225,27,25,22,33,43,23, +215,1,23,219,1,27,28,23,205,2,11,193,28,192,192,28,193,28,204,28,249, +22,188,3,248,22,75,196,248,22,75,23,15,193,11,11,11,86,95,23,216,1, +23,212,1,11,86,94,23,201,1,11,28,23,193,2,86,95,23,213,1,23,198, +1,20,13,159,80,159,8,24,40,37,250,80,159,8,27,41,37,249,22,27,11, +80,159,8,29,40,37,22,181,4,23,217,1,20,13,159,80,159,8,24,40,37, +250,80,159,8,27,41,37,249,22,27,11,80,159,8,29,40,37,22,160,5,28, +248,22,149,14,23,219,2,23,218,1,86,94,23,218,1,247,22,190,14,249,247, +22,158,5,248,22,74,195,23,28,86,94,23,193,1,27,28,23,199,2,86,94, +23,215,1,23,214,1,86,94,23,214,1,23,215,1,20,13,159,80,159,8,25, +40,37,250,80,159,8,28,41,37,249,22,27,11,80,159,8,30,40,37,22,181, +4,28,23,30,28,23,202,1,11,195,86,94,23,202,1,11,20,13,159,80,159, +8,25,40,37,250,80,159,8,28,41,37,249,22,27,11,80,159,8,30,40,37, +22,160,5,28,248,22,149,14,23,220,2,23,219,1,86,94,23,219,1,247,22, +190,14,249,247,22,158,5,194,23,29,27,249,22,161,8,80,159,39,45,38,249, +22,183,3,248,22,179,3,248,22,166,2,200,8,128,8,27,28,193,248,22,169, +2,194,11,28,192,27,249,22,96,198,195,28,192,248,22,75,193,11,11,27,249, +22,183,3,248,22,179,3,248,22,166,2,198,8,128,8,27,249,22,161,8,80, +159,40,45,38,195,27,28,193,248,22,169,2,194,11,250,22,162,8,80,159,42, +45,38,197,248,22,168,2,249,22,73,249,22,73,204,205,28,198,198,9,0,17, +35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,32,48,88,163, +8,36,37,59,11,2,29,222,33,49,27,249,22,137,15,2,47,23,196,2,28, +23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,27,248,22,107, +23,197,1,27,249,22,137,15,2,47,23,196,2,28,23,193,2,86,94,23,194, +1,249,22,73,248,22,98,23,196,2,27,248,22,107,23,197,1,27,249,22,137, +15,2,47,23,196,2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98, +23,196,2,27,248,22,107,23,197,1,27,249,22,137,15,2,47,23,196,2,28, +23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,248,2,48,248, +22,107,23,197,1,248,22,83,194,248,22,83,194,248,22,83,194,248,22,83,194, +32,50,88,163,36,37,55,11,2,29,222,33,51,28,248,22,81,248,22,75,23, +195,2,249,22,7,9,248,22,74,195,90,159,38,11,89,161,38,36,11,27,248, +22,75,196,28,248,22,81,248,22,75,23,195,2,249,22,7,9,248,22,74,195, +90,159,38,11,89,161,38,36,11,27,248,22,75,196,28,248,22,81,248,22,75, +23,195,2,249,22,7,9,248,22,74,195,90,159,38,11,89,161,38,36,11,248, +2,50,248,22,75,196,249,22,7,249,22,73,248,22,74,199,196,195,249,22,7, +249,22,73,248,22,74,199,196,195,249,22,7,249,22,73,248,22,74,199,196,195, +27,27,249,22,137,15,2,47,23,197,2,28,23,193,2,86,94,23,195,1,249, +22,73,248,22,98,23,196,2,27,248,22,107,23,197,1,27,249,22,137,15,2, +47,23,196,2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196, +2,27,248,22,107,23,197,1,27,249,22,137,15,2,47,23,196,2,28,23,193, +2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,27,248,22,107,23,197, +1,27,249,22,137,15,2,47,23,196,2,28,23,193,2,86,94,23,194,1,249, +22,73,248,22,98,23,196,2,248,2,48,248,22,107,23,197,1,248,22,83,194, +248,22,83,194,248,22,83,194,248,22,83,195,28,23,195,1,192,28,248,22,81, +248,22,75,23,195,2,249,22,7,9,248,22,74,195,27,248,22,75,194,90,159, +38,11,89,161,38,36,11,28,248,22,81,248,22,75,23,197,2,249,22,7,9, +248,22,74,197,27,248,22,75,196,90,159,38,11,89,161,38,36,11,28,248,22, +81,248,22,75,23,197,2,249,22,7,9,248,22,74,197,90,159,38,11,89,161, +38,36,11,248,2,50,248,22,75,198,249,22,7,249,22,73,248,22,74,201,196, +195,249,22,7,249,22,73,248,22,74,202,196,195,249,22,7,249,22,73,248,22, +74,200,196,195,86,95,28,248,22,136,5,195,12,250,22,177,9,2,21,6,20, +20,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104, +197,28,24,193,2,248,24,194,1,195,86,94,23,193,1,12,27,250,22,153,2, +80,159,41,43,38,248,22,162,15,247,22,191,12,11,27,28,23,194,2,193,86, +94,23,194,1,27,247,22,133,2,86,94,250,22,151,2,80,159,43,43,38,248, +22,162,15,247,22,191,12,195,192,250,22,151,2,195,199,66,97,116,116,97,99, +104,251,211,197,198,199,10,28,192,250,22,176,9,11,196,195,248,22,174,9,194, +28,249,22,137,7,194,6,1,1,46,2,25,28,249,22,137,7,194,6,2,2, +46,46,62,117,112,192,32,57,88,163,8,36,37,50,11,67,115,115,45,62,114, +107,116,222,33,58,27,248,22,134,7,194,28,249,22,188,3,194,39,28,249,22, +137,7,6,3,3,46,115,115,249,22,153,7,197,249,22,176,3,198,39,249,22, +154,7,250,22,153,7,198,36,249,22,176,3,199,39,6,4,4,46,114,107,116, +193,193,28,249,22,143,9,248,22,75,23,200,2,23,197,1,28,249,22,141,9, +248,22,74,23,200,2,23,196,1,251,22,174,9,2,21,6,28,28,99,121,99, +108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,46,115,58, +32,126,46,115,23,200,1,249,22,2,22,75,248,22,88,249,22,73,23,206,1, +23,202,1,12,12,247,192,20,13,159,80,159,41,48,38,249,22,73,249,22,73, +248,22,162,15,247,22,191,12,23,200,1,23,195,1,20,13,159,80,159,41,40, +37,250,80,159,44,41,37,249,22,27,11,80,159,46,40,37,22,180,4,23,197, +1,249,247,22,159,5,23,199,1,248,22,61,248,22,153,14,23,199,1,86,94, +28,28,248,22,149,14,23,196,2,10,248,22,144,5,23,196,2,12,28,23,197, +2,250,22,176,9,11,6,15,15,98,97,100,32,109,111,100,117,108,101,32,112, +97,116,104,23,200,2,250,22,177,9,2,21,6,19,19,109,111,100,117,108,101, +45,112,97,116,104,32,111,114,32,112,97,116,104,23,198,2,28,28,248,22,71, +23,196,2,249,22,141,9,248,22,74,23,198,2,2,4,11,248,22,137,5,248, +22,98,196,28,28,248,22,71,23,196,2,249,22,141,9,248,22,74,23,198,2, +66,112,108,97,110,101,116,11,86,94,28,207,12,20,13,159,80,159,37,55,37, +80,158,37,53,89,161,37,36,10,249,22,182,4,21,94,2,30,6,19,19,112, +108,97,110,101,116,47,114,101,115,111,108,118,101,114,46,114,107,116,1,27,112, +108,97,110,101,116,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115, +111,108,118,101,114,12,252,212,199,200,201,202,80,158,42,53,86,94,23,193,1, +27,88,163,8,36,37,46,11,79,115,104,111,119,45,99,111,108,108,101,99,116, +105,111,110,45,101,114,114,223,5,33,55,27,28,248,22,58,23,198,2,27,248, +80,159,41,46,39,249,22,73,23,201,2,247,22,191,14,28,23,193,2,192,86, +94,23,193,1,90,159,38,11,89,161,38,36,11,249,80,159,44,52,39,248,22, +64,23,203,2,11,27,28,248,22,81,23,195,2,6,8,8,109,97,105,110,46, +114,107,116,249,22,154,7,23,197,2,6,4,4,46,114,107,116,27,252,80,159, +49,57,39,2,21,23,204,1,28,248,22,81,23,201,2,23,201,1,86,94,23, +201,1,248,22,74,23,201,2,28,248,22,81,23,201,2,86,94,23,200,1,9, +248,22,75,23,201,1,23,199,2,249,22,167,14,23,195,1,23,196,1,28,248, +22,131,7,23,198,2,86,94,23,194,1,27,248,80,159,41,8,26,39,23,200, +2,27,248,80,159,42,46,39,249,22,73,23,202,2,23,197,2,28,23,193,2, +192,86,94,23,193,1,90,159,38,11,89,161,38,36,11,249,80,159,45,52,39, +23,203,2,11,250,22,1,22,167,14,23,199,1,249,22,87,249,22,2,32,0, +88,163,8,36,37,44,11,9,222,33,56,23,200,1,248,22,83,248,2,57,23, +201,1,28,248,22,149,14,23,198,2,86,94,23,194,1,28,248,22,172,14,23, +198,2,248,80,159,40,8,27,39,248,22,176,14,23,199,2,248,22,83,6,26, +26,32,40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98,115, +111,108,117,116,101,41,28,249,22,141,9,248,22,74,23,200,2,2,30,27,248, +80,159,41,46,39,249,22,73,23,201,2,247,22,191,14,28,23,193,2,192,86, +94,23,193,1,90,159,39,11,89,161,38,36,11,249,80,159,45,52,39,248,22, +98,23,204,2,11,89,161,37,38,11,28,248,22,81,248,22,100,23,203,2,28, +248,22,81,23,194,2,249,22,141,15,0,8,35,114,120,34,91,46,93,34,23, +196,2,11,10,27,28,23,196,2,248,2,57,23,196,2,28,248,22,81,23,195, +2,6,8,8,109,97,105,110,46,114,107,116,28,249,22,141,15,0,8,35,114, +120,34,91,46,93,34,23,197,2,248,2,57,23,196,2,249,22,154,7,23,197, +2,6,4,4,46,114,107,116,27,28,23,197,1,86,94,23,196,1,249,22,87, +28,248,22,81,248,22,100,23,207,2,21,93,6,5,5,109,122,108,105,98,249, +22,1,22,87,249,22,2,80,159,51,8,28,39,248,22,100,23,210,2,23,197, +1,28,248,22,81,23,196,2,86,94,23,195,1,248,22,83,23,197,1,86,94, +23,196,1,23,195,1,27,252,80,159,51,57,39,2,21,23,206,1,248,22,74, +23,200,2,248,22,75,23,200,1,23,200,2,249,22,167,14,23,195,1,23,197, +1,28,249,22,141,9,248,22,74,23,200,2,64,102,105,108,101,248,80,159,40, +8,27,39,248,22,176,14,249,22,174,14,248,22,178,14,248,22,98,23,203,2, +248,80,159,44,8,26,39,23,203,2,12,86,94,28,28,248,22,149,14,23,194, +2,10,248,22,156,8,23,194,2,86,94,23,199,1,12,28,23,199,2,250,22, +176,9,67,114,101,113,117,105,114,101,249,22,179,7,6,17,17,98,97,100,32, +109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,74,23, +199,2,6,0,0,23,202,1,86,94,23,199,1,250,22,177,9,2,21,249,22, +179,7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198, +2,248,22,74,23,199,2,6,0,0,23,200,2,27,28,248,22,156,8,23,195, +2,249,22,161,8,23,196,2,36,249,22,176,14,248,22,177,14,23,197,2,11, +27,28,248,22,156,8,23,196,2,249,22,161,8,23,197,2,37,248,80,159,42, +58,39,23,195,2,90,159,39,11,89,161,39,36,11,28,248,22,156,8,23,199, +2,250,22,7,2,31,249,22,161,8,23,203,2,38,2,31,248,22,170,14,23, +198,2,86,95,23,195,1,23,193,1,27,28,248,22,156,8,23,200,2,249,22, +161,8,23,201,2,39,249,80,159,47,56,39,23,197,2,5,0,27,28,248,22, +156,8,23,201,2,249,22,161,8,23,202,2,40,248,22,137,5,23,200,2,27, +27,250,22,153,2,80,159,51,43,38,248,22,162,15,247,22,191,12,11,28,23, +193,2,192,86,94,23,193,1,27,247,22,133,2,86,94,250,22,151,2,80,159, +52,43,38,248,22,162,15,247,22,191,12,195,192,86,95,28,23,208,1,27,250, +22,153,2,23,197,2,197,11,28,23,193,1,12,86,94,27,27,28,248,22,17, +80,159,51,49,38,80,159,50,49,38,247,22,19,251,22,27,11,80,159,54,48, +38,9,23,197,1,27,248,22,162,15,247,22,191,12,86,94,249,22,3,20,20, +94,88,163,8,36,37,55,11,9,226,12,11,2,3,33,59,23,195,1,23,196, +2,248,28,248,22,17,80,159,52,49,38,32,0,88,163,36,37,42,11,9,222, +33,60,80,159,51,8,29,39,20,20,94,88,163,36,36,52,8,176,64,9,228, +15,11,10,6,5,2,33,61,23,195,1,250,22,151,2,23,197,1,197,10,12, +28,28,248,22,156,8,23,202,1,11,28,248,22,131,7,23,206,2,10,28,248, +22,58,23,206,2,10,28,248,22,71,23,206,2,249,22,141,9,248,22,74,23, +208,2,2,30,11,27,28,248,22,131,7,23,207,2,249,22,73,23,208,1,248, +80,159,51,8,26,39,23,210,1,86,94,23,207,1,249,22,73,23,208,1,247, +22,191,14,27,249,22,183,3,248,22,179,3,248,22,166,2,23,198,2,8,128, +8,27,249,22,161,8,80,159,52,45,38,23,196,2,27,28,23,194,2,248,22, +169,2,23,195,1,86,94,23,194,1,11,250,22,162,8,80,159,54,45,38,23, +198,1,248,22,168,2,249,22,73,249,22,73,23,204,1,252,22,158,8,23,217, +1,23,216,1,23,214,1,23,212,1,23,18,28,23,199,2,23,199,1,86,94, +23,199,1,9,12,193,86,96,20,18,159,11,80,158,36,53,248,80,159,37,8, +25,37,249,22,27,11,80,159,39,55,37,248,22,179,4,80,159,37,54,38,248, +22,159,5,80,159,37,37,39,248,22,182,13,80,159,37,42,39,20,18,159,11, +80,158,36,53,248,80,159,37,8,25,37,249,22,27,11,80,159,39,55,37,159, +36,20,112,159,36,16,1,11,16,0,20,26,141,2,1,2,1,29,11,11,11, +11,11,10,38,80,158,36,36,20,112,159,40,16,26,2,2,2,3,30,2,5, +72,112,97,116,104,45,115,116,114,105,110,103,63,11,30,2,5,75,112,97,116, +104,45,97,100,100,45,115,117,102,102,105,120,8,30,2,7,2,8,6,30,2, +7,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122, +97,116,105,111,110,3,2,9,2,10,2,11,2,12,2,13,2,14,2,15,2, +16,2,17,2,18,2,19,2,20,2,21,30,2,22,2,8,6,30,2,5,79, +112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120,10,30, +2,5,73,102,105,110,100,45,99,111,108,45,102,105,108,101,3,30,2,5,76, +110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,7,2,23,2,24, +30,2,22,74,114,101,112,97,114,97,109,101,116,101,114,105,122,101,7,16,0, +37,39,36,16,0,36,16,14,2,15,2,16,2,10,2,12,2,17,2,18,2, +11,2,3,2,9,2,2,2,13,2,14,2,19,2,21,50,11,11,11,16,3, +2,23,2,20,2,24,16,3,11,11,11,16,3,2,23,2,20,2,24,39,39, +37,12,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16,0,16,0,16, +0,36,36,16,21,20,15,16,2,88,163,36,37,45,8,128,128,9,223,0,33, +32,80,159,36,8,29,39,20,15,16,2,88,163,8,36,37,45,8,240,0,0, +1,0,9,223,0,33,33,80,159,36,8,28,39,20,15,16,2,88,163,36,37, +49,8,240,0,0,16,0,72,112,97,116,104,45,115,115,45,62,114,107,116,223, +0,33,34,80,159,36,8,27,39,20,15,16,2,88,163,36,37,49,8,240,0, +192,0,0,67,103,101,116,45,100,105,114,223,0,33,35,80,159,36,8,26,39, +20,15,16,2,248,22,153,8,69,115,111,45,115,117,102,102,105,120,80,159,36, +36,37,20,15,16,2,88,163,36,38,8,38,8,61,2,3,223,0,33,44,80, +159,36,37,37,20,15,16,2,32,0,88,163,8,36,37,42,11,2,9,222,192, +80,159,36,42,37,20,15,16,2,247,22,136,2,80,159,36,43,37,20,15,16, +2,8,128,8,80,159,36,44,37,20,15,16,2,249,22,157,8,8,128,8,11, +80,159,36,45,37,20,15,16,2,88,163,8,36,37,50,8,128,8,2,13,223, +0,33,45,80,159,36,46,37,20,15,16,2,88,163,8,36,38,55,8,128,8, +2,14,223,0,33,46,80,159,36,47,37,20,15,16,2,247,22,69,80,159,36, +48,37,20,15,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,97,100, +105,110,103,80,159,36,49,37,20,15,16,2,11,80,158,36,50,20,15,16,2, +11,80,158,36,51,20,15,16,2,32,0,88,163,36,38,8,25,11,2,19,222, +33,52,80,159,36,52,37,20,15,16,2,11,80,158,36,53,20,15,16,2,27, +11,20,19,158,36,90,159,37,10,89,161,37,36,10,20,25,96,2,21,88,163, +8,36,37,51,8,128,2,9,224,2,1,33,53,88,163,36,39,49,11,9,223, +0,33,54,88,163,36,40,8,38,16,2,8,176,218,8,187,241,9,224,2,1, +33,62,207,80,159,36,54,37,20,15,16,2,88,163,36,36,45,8,240,66,0, +14,2,2,23,223,0,33,63,80,159,36,59,37,20,15,16,2,88,163,8,36, +36,45,8,240,0,0,10,2,2,24,223,0,33,64,80,159,36,8,24,37,96, +29,94,2,4,68,35,37,107,101,114,110,101,108,11,29,94,2,4,69,35,37, +109,105,110,45,115,116,120,11,2,5,2,22,9,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 6253); + } + { + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,48,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,11,0,0,0,1,0,0,10,0,16,0, +29,0,44,0,58,0,78,0,90,0,104,0,118,0,170,0,0,0,94,1,0, +0,69,35,37,98,117,105,108,116,105,110,65,113,117,111,116,101,29,94,2,2, +67,35,37,117,116,105,108,115,11,29,94,2,2,69,35,37,110,101,116,119,111, +114,107,11,29,94,2,2,68,35,37,112,97,114,97,109,122,11,29,94,2,2, +74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,11,29,94,2,2,66, +35,37,98,111,111,116,11,29,94,2,2,68,35,37,101,120,112,111,98,115,11, +29,94,2,2,68,35,37,107,101,114,110,101,108,11,97,36,11,8,240,11,78, +0,0,100,159,2,3,36,36,159,2,4,36,36,159,2,5,36,36,159,2,6, +36,36,159,2,7,36,36,159,2,8,36,36,159,2,9,36,36,159,2,9,36, +36,16,0,159,36,20,112,159,36,16,1,11,16,0,20,26,141,2,1,2,1, +29,11,11,11,11,11,18,96,11,46,46,46,36,80,158,36,36,20,112,159,36, +16,0,16,0,37,39,36,16,0,36,16,0,36,11,11,11,16,0,16,0,16, +0,36,36,37,12,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16,0, +16,0,16,0,36,36,16,0,104,2,9,2,8,29,94,2,2,69,35,37,102, +111,114,101,105,103,110,11,29,94,2,2,68,35,37,117,110,115,97,102,101,11, +29,94,2,2,69,35,37,102,108,102,120,110,117,109,11,2,7,2,6,2,5, +2,4,2,3,29,94,2,2,67,35,37,112,108,97,99,101,11,29,94,2,2, +69,35,37,102,117,116,117,114,101,115,11,9,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 414); } diff --git a/src/racket/src/env.c b/src/racket/src/env.c index 3710d533ec..8f6deef89e 100644 --- a/src/racket/src/env.c +++ b/src/racket/src/env.c @@ -78,6 +78,7 @@ static Scheme_Object *variable_namespace(int, Scheme_Object *[]); static Scheme_Object *variable_top_level_namespace(int, Scheme_Object *[]); static Scheme_Object *variable_phase(int, Scheme_Object *[]); static Scheme_Object *variable_base_phase(int, Scheme_Object *[]); +static Scheme_Object *variable_inspector(int, Scheme_Object *[]); static Scheme_Object *variable_const_p(int, Scheme_Object *[]); static Scheme_Object *now_transforming(int argc, Scheme_Object *argv[]); static Scheme_Object *now_transforming_module(int argc, Scheme_Object *argv[]); @@ -645,6 +646,7 @@ static void make_kernel_env(void) GLOBAL_PRIM_W_ARITY("variable-reference->namespace", variable_top_level_namespace, 1, 1, env); GLOBAL_PRIM_W_ARITY("variable-reference->phase", variable_phase, 1, 1, env); GLOBAL_PRIM_W_ARITY("variable-reference->module-base-phase", variable_base_phase, 1, 1, env); + GLOBAL_PRIM_W_ARITY("variable-reference->module-declaration-inspector", variable_inspector, 1, 1, env); REGISTER_SO(scheme_varref_const_p_proc); scheme_varref_const_p_proc = scheme_make_prim_w_arity(variable_const_p, @@ -1682,6 +1684,14 @@ static Scheme_Object *do_variable_namespace(const char *who, int tl, int argc, S return scheme_make_integer(ph); } else if (tl == 3) { return scheme_make_integer(ph - env->mod_phase); + } else if (tl == 4) { + if (((Scheme_Object *)((Scheme_Bucket *)v)->key != scheme_stack_dump_key) + || !env->module) { + scheme_arg_mismatch(who, + "variable reference does not refer to an anonymous module variable: ", + v); + } + return env->module->insp; } else if (tl) { /* return env directly; need to set up */ if (!env->phase && env->module) @@ -1717,6 +1727,11 @@ static Scheme_Object *variable_base_phase(int argc, Scheme_Object *argv[]) return do_variable_namespace("variable-reference->phase", 3, argc, argv); } +static Scheme_Object *variable_inspector(int argc, Scheme_Object *argv[]) +{ + return do_variable_namespace("variable-reference->module-declaration-inspector", 4, argc, argv); +} + static Scheme_Object *variable_const_p(int argc, Scheme_Object *argv[]) { Scheme_Object *v; diff --git a/src/racket/src/module.c b/src/racket/src/module.c index b45e7749d5..cb79924e8b 100644 --- a/src/racket/src/module.c +++ b/src/racket/src/module.c @@ -4869,7 +4869,6 @@ void *scheme_module_run_finish(Scheme_Env *menv, Scheme_Env *env) config = scheme_extend_config(scheme_current_config(), MZCONFIG_ENV, (Scheme_Object *)env); - scheme_push_continuation_frame(&cframe); scheme_set_cont_mark(scheme_parameterization_key, (Scheme_Object *)config); } diff --git a/src/racket/src/schminc.h b/src/racket/src/schminc.h index a0cbe7cd8c..50063a6139 100644 --- a/src/racket/src/schminc.h +++ b/src/racket/src/schminc.h @@ -13,7 +13,7 @@ #define USE_COMPILED_STARTUP 1 -#define EXPECTED_PRIM_COUNT 1034 +#define EXPECTED_PRIM_COUNT 1035 #define EXPECTED_UNSAFE_COUNT 78 #define EXPECTED_FLFXNUM_COUNT 68 #define EXPECTED_FUTURES_COUNT 11 diff --git a/src/racket/src/schvers.h b/src/racket/src/schvers.h index ee71c04ebb..d38c7e414d 100644 --- a/src/racket/src/schvers.h +++ b/src/racket/src/schvers.h @@ -13,12 +13,12 @@ consistently.) */ -#define MZSCHEME_VERSION "5.1.3.9" +#define MZSCHEME_VERSION "5.1.3.10" #define MZSCHEME_VERSION_X 5 #define MZSCHEME_VERSION_Y 1 #define MZSCHEME_VERSION_Z 3 -#define MZSCHEME_VERSION_W 9 +#define MZSCHEME_VERSION_W 10 #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)