submodules: make .zo path stick for consistent independent loading
When a module is loaded from bytecode and then the value of `use-compiled-file-paths' changes, an attempt to load a submodule would fail, because source isn't used if the main module is already declared, and the bytecode code is not used according to `use-compiled-file-paths'. Make the bytecode path stick when it is used once, so that submodule loads succeed, and make it work even with `namespace-module-attach'. The module-attach part of this protocol requires a change to the API of a module name resolver: the notification mode gets two arguments, instead of one, where the second argument is an environment.
This commit is contained in:
parent
cc2c701a7d
commit
c8f4ac6ae4
|
@ -660,35 +660,38 @@
|
|||
(vector mapping-table library-table))
|
||||
(letrec-values ([(embedded-resolver)
|
||||
(case-lambda
|
||||
[(name)
|
||||
;; a notification; if the name matches one of our special names,
|
||||
;; assume that it's from a namespace that has the declaration
|
||||
;; [it would be better if the notifier told us the source]
|
||||
(let-values ([(name) (if name (resolved-module-path-name name) #f)])
|
||||
(let-values ([(a) (assq name mapping-table)])
|
||||
(if a
|
||||
(let-values ([(vec) (hash-ref regs (namespace-module-registry (current-namespace))
|
||||
(lambda ()
|
||||
(let-values ([(vec) (vector null null)])
|
||||
(hash-set! regs (namespace-module-registry (current-namespace)) vec)
|
||||
vec)))])
|
||||
;; add mapping:
|
||||
(vector-set! vec 0 (cons a (vector-ref vec 0)))
|
||||
;; add library mappings:
|
||||
(vector-set! vec 1 (append
|
||||
(letrec-values ([(loop)
|
||||
(lambda (l)
|
||||
(if (null? l)
|
||||
null
|
||||
(if (eq? (cdar l) name)
|
||||
(cons (car l) (loop (cdr l)))
|
||||
(loop (cdr l)))))])
|
||||
(loop library-table))
|
||||
(vector-ref vec 1))))
|
||||
(void))))
|
||||
(orig name)]
|
||||
[(name rel-to stx)
|
||||
(embedded-resolver name rel-to stx #t)]
|
||||
[(name from-namespace)
|
||||
;; A notification
|
||||
(if from-namespace
|
||||
;; If the source namespace has a mapping for `name',
|
||||
;; then copy it to the current namespace.
|
||||
(let-values ([(name) (if name (resolved-module-path-name name) #f)])
|
||||
(let-values ([(src-vec) (hash-ref regs (namespace-module-registry from-namespace) #f)])
|
||||
(let-values ([(a) (if src-vec
|
||||
(assq name (vector-ref src-vec 0))
|
||||
#f)])
|
||||
(if a
|
||||
(let-values ([(vec) (hash-ref regs (namespace-module-registry (current-namespace))
|
||||
(lambda ()
|
||||
(let-values ([(vec) (vector null null)])
|
||||
(hash-set! regs (namespace-module-registry (current-namespace)) vec)
|
||||
vec)))])
|
||||
;; add mapping:
|
||||
(vector-set! vec 0 (cons a (vector-ref vec 0)))
|
||||
;; add library mappings:
|
||||
(vector-set! vec 1 (append
|
||||
(letrec-values ([(loop)
|
||||
(lambda (l)
|
||||
(if (null? l)
|
||||
null
|
||||
(if (eq? (cdar l) name)
|
||||
(cons (car l) (loop (cdr l)))
|
||||
(loop (cdr l)))))])
|
||||
(loop library-table))
|
||||
(vector-ref vec 1))))
|
||||
(void)))))
|
||||
(void))
|
||||
(orig name from-namespace)]
|
||||
[(name rel-to stx load?)
|
||||
(if (not (module-path? name))
|
||||
;; Bad input
|
||||
|
|
|
@ -288,7 +288,21 @@ path of the loaded file, otherwise the
|
|||
If the original @racket[_file] is loaded or a @filepath{.zo} variant is
|
||||
loaded, the @tech{load handler} is called to load the file. If any
|
||||
other kind of file is loaded, the @tech{extension-load handler} is
|
||||
called.}
|
||||
called.
|
||||
|
||||
When the default @tech{compiled-load handler} loads a module from a
|
||||
bytecode (i.e., @filepath{.zo}) file, the handler records the bytecode
|
||||
file path in the current namespace's @tech{module registry}. More
|
||||
specifically, the handler records the path for the top-level module of
|
||||
the loaded module, which is an enclosing module if the loaded module
|
||||
is a submodule. Thereafter, loads via the default @tech{compiled-load
|
||||
handler} for modules within the same top-level module use the recorded
|
||||
file, independent of the file that otherwise would be selected by the
|
||||
@tech{compiled-load handler} (e.g., even if the
|
||||
@racket[use-compiled-file-paths] parameter value changes). The default
|
||||
@tech{module name resolver} transfers bytecode-file information when a
|
||||
module declaration is attached to a new namespace. This protocol supports
|
||||
independent but consistent loading of submodules from bytecode files.}
|
||||
|
||||
|
||||
@defproc[(load/use-compiled [file path-string?]) any]{
|
||||
|
|
|
@ -63,7 +63,7 @@ the grammar for @racket[_module-path] for @racket[require],
|
|||
|
||||
@defparam[current-module-name-resolver proc
|
||||
(case->
|
||||
(resolved-module-path? . -> . any)
|
||||
(resolved-module-path? (or/c #f namespace?) . -> . any)
|
||||
(module-path?
|
||||
(or/c #f resolved-module-path?)
|
||||
(or/c #f syntax?)
|
||||
|
@ -85,12 +85,22 @@ an absolute symbol or @tech{resolved module path}.
|
|||
A @tech{module name resolver} takes one and four arguments:
|
||||
@itemize[
|
||||
|
||||
@item{When given one argument, it is a name for a module declaration
|
||||
that is already loaded. Such a call to the module name resolver is a
|
||||
notification that the corresponding module does not need to be
|
||||
loaded (for the current namespace, or any other namespace that
|
||||
shares the same module registry). The module name resolver's result
|
||||
is ignored.}
|
||||
@item{When given two arguments, the first is a name for a module that
|
||||
is now declared in the current namespace, and the second is optionally
|
||||
a namespace from which the declaration was copied.
|
||||
The module name resolver's result in this case is ignored.
|
||||
|
||||
The current module name resolver is called with two arguments by
|
||||
@racket[namespace-attach-module] or
|
||||
@racket[namespace-attach-module-declaration] to notify the resolver
|
||||
that a module declaration was attached to the current namespace (and
|
||||
should not be loaded in the future for the namespace's @tech{module registry}).
|
||||
Evaluation of a module declaration also calls the current module
|
||||
name resolver with two arguments, where the first is the declared
|
||||
module and the second is @racket[#f]. No other Racket operation
|
||||
invokes the module name resolver with two arguments, but other tools
|
||||
(such as DrRacket) might call this resolver in this mode to avoid
|
||||
redundant module loads.}
|
||||
|
||||
@item{When given four arguments, the first is a module path,
|
||||
equivalent to a quoted @racket[_module-path] for @racket[require].
|
||||
|
@ -107,7 +117,7 @@ A @tech{module name resolver} takes one and four arguments:
|
|||
]
|
||||
|
||||
For the second case, the standard module name resolver keeps a
|
||||
per-registry table of loaded module name. If a resolved module path is
|
||||
table per @tech{module registry} containing loaded module name. If a resolved module path is
|
||||
not in the table, and @racket[#f] is not provided as the fourth
|
||||
argument to the @tech{module name resolver}, then the name is put into
|
||||
the table and the corresponding file is loaded with a variant of
|
||||
|
@ -124,20 +134,18 @@ already exists; if such a continuation mark does exist in the current
|
|||
continuation, then the @exnraise[exn:fail] with a message about a
|
||||
dependency cycle.
|
||||
|
||||
The default module name resolver cooperates with the default
|
||||
@tech{compiled-load handler}: on a module-attach notification,
|
||||
bytecode-file information recorded by the @tech{compiled-load handler}
|
||||
for the source namespace's @tech{module registry} is transferred to
|
||||
the target namespace's @tech{module registry}.
|
||||
|
||||
Module loading is suppressed (i.e., @racket[#f] is supplied as a fourth
|
||||
argument to the module name resolver) when resolving module paths in
|
||||
@tech{syntax objects} (see @secref["stxobj-model"]). When a
|
||||
@tech{syntax object} is manipulated, the current namespace might not
|
||||
match the original namespace for the syntax object, and the module
|
||||
should not necessarily be loaded in the current namespace.
|
||||
|
||||
The current module name resolver is called with a single argument by
|
||||
@racket[namespace-attach-module] to notify the resolver that a module
|
||||
was attached to the current namespace (and should not be loaded in the
|
||||
future for the namespace's registry). No other Racket operation
|
||||
invokes the module name resolver with a single argument, but other
|
||||
tools (such as DrRacket) might call this resolver in this mode to
|
||||
avoid redundant module loads.}
|
||||
should not necessarily be loaded in the current namespace.}
|
||||
|
||||
|
||||
@defparam[current-module-declare-name name (or/c resolved-module-path? #f)]{
|
||||
|
|
|
@ -528,7 +528,7 @@
|
|||
(read-syntax path
|
||||
(open-input-string "#lang tests/racket (provide x) (define x 1)"
|
||||
path)))
|
||||
((current-module-name-resolver) (current-module-declare-name))))
|
||||
((current-module-name-resolver) (current-module-declare-name) #f)))
|
||||
(test '#(tests/racket/lang/getinfo get-info closure-data)
|
||||
module->language-info 'tests/racket/langm))))
|
||||
|
||||
|
|
|
@ -1234,10 +1234,10 @@
|
|||
(parameterize ([current-namespace (make-base-namespace)]
|
||||
[current-module-name-resolver
|
||||
(case-lambda
|
||||
[(name)
|
||||
[(name ns)
|
||||
(if (equal? name "a")
|
||||
(void)
|
||||
(old name))]
|
||||
(old name ns))]
|
||||
[(name _ __) (make-resolved-module-path 'huh?)]
|
||||
[(name base stx load?)
|
||||
(if (equal? name "a")
|
||||
|
|
|
@ -635,6 +635,33 @@
|
|||
(try-submods '(xa xb))
|
||||
(try-submods '(test main)))
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Check stickiness of submodule-from-bytecode loading:
|
||||
|
||||
(let ()
|
||||
(define e `(module e racket/base
|
||||
(module sub1 racket/base (provide x) (define x 'sub1))
|
||||
(module sub2 racket/base (provide x) (define x 'sub2))
|
||||
(module sub3 racket/base (provide x) (define x 'sub3))))
|
||||
(define fn (build-path temp-dir "has-submod2.rkt"))
|
||||
(define dir (build-path temp-dir "compiled"))
|
||||
(define fn-zo (build-path dir "has-submod2_rkt.zo"))
|
||||
(unless (directory-exists? dir) (make-directory dir))
|
||||
(with-output-to-file fn
|
||||
#:exists 'truncate
|
||||
(lambda () (write e)))
|
||||
(with-output-to-file fn-zo
|
||||
#:exists 'truncate
|
||||
(lambda () (write (compile e))))
|
||||
(test 'sub1 dynamic-require `(submod ,fn sub1) 'x)
|
||||
(parameterize ([use-compiled-file-paths null])
|
||||
(test 'sub2 dynamic-require `(submod ,fn sub2) 'x))
|
||||
(let ([ns (current-namespace)])
|
||||
(parameterize ([current-namespace (make-base-namespace)]
|
||||
[use-compiled-file-paths null])
|
||||
(namespace-attach-module ns `(submod ,fn sub1))
|
||||
(test 'sub3 dynamic-require `(submod ,fn sub3) 'x))))
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Delete the temp-dir
|
||||
|
||||
|
|
|
@ -1828,13 +1828,13 @@
|
|||
[resolved-module-path-name (-> -Resolved-Module-Path (Un -Path -Symbol))]
|
||||
[module-path? (asym-pred Univ B (-FS (-filter -Module-Path 0) -top))]
|
||||
|
||||
[current-module-name-resolver (-Param (cl->* (-Resolved-Module-Path . -> . Univ)
|
||||
[current-module-name-resolver (-Param (cl->* (-Resolved-Module-Path Univ . -> . Univ)
|
||||
((Un -Module-Path -Path)
|
||||
(-opt -Resolved-Module-Path)
|
||||
(-opt (-Syntax Univ))
|
||||
-Boolean
|
||||
. -> . -Resolved-Module-Path))
|
||||
(cl->* (-Resolved-Module-Path . -> . Univ)
|
||||
(cl->* (-Resolved-Module-Path Univ . -> . Univ)
|
||||
((Un -Module-Path -Path)
|
||||
(-opt -Resolved-Module-Path)
|
||||
(-opt (-Syntax Univ))
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
Version 5.3.0.15
|
||||
Changed module name resolver notification mode to supply
|
||||
a source namespace for attaches
|
||||
|
||||
Version 5.3.0.12
|
||||
racket/base: added impersonate-continuation-mark-key,
|
||||
chaperone-continuation-mark-key, make-continuation-mark-key,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,52,84,0,0,0,0,0,0,0,0,0,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,53,84,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,14,
|
||||
0,19,0,26,0,29,0,36,0,43,0,47,0,60,0,65,0,69,0,74,0,
|
||||
83,0,87,0,93,0,107,0,121,0,124,0,130,0,134,0,136,0,147,0,149,
|
||||
|
@ -16,12 +16,12 @@
|
|||
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,228,83,0,0,95,159,2,17,36,36,159,2,16,36,36,159,2,16,36,36,
|
||||
240,250,83,0,0,95,159,2,17,36,36,159,2,16,36,36,159,2,16,36,36,
|
||||
16,20,2,10,2,2,2,3,2,2,2,5,2,2,2,6,2,2,2,7,2,
|
||||
2,2,8,2,2,2,9,2,2,2,4,2,2,2,11,2,2,2,12,2,2,
|
||||
97,37,11,8,240,228,83,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,228,83,0,0,16,0,96,11,
|
||||
11,8,240,228,83,0,0,16,0,18,98,64,104,101,114,101,13,16,6,36,2,
|
||||
97,37,11,8,240,250,83,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,250,83,0,0,16,0,96,11,
|
||||
11,8,240,250,83,0,0,16,0,18,98,64,104,101,114,101,13,16,6,36,2,
|
||||
14,2,2,11,11,11,8,32,8,31,8,30,8,29,27,248,22,163,4,195,249,
|
||||
22,156,4,80,158,39,36,251,22,89,2,18,248,22,104,199,12,249,22,79,2,
|
||||
19,248,22,106,201,27,248,22,163,4,195,249,22,156,4,80,158,39,36,251,22,
|
||||
|
@ -30,14 +30,14 @@
|
|||
22,81,194,248,22,80,193,249,22,156,4,80,158,39,36,251,22,89,2,18,248,
|
||||
22,80,199,249,22,79,2,8,248,22,81,201,11,18,100,10,13,16,6,36,2,
|
||||
14,2,2,11,11,11,8,32,8,31,8,30,8,29,16,4,11,11,2,20,3,
|
||||
1,8,101,110,118,49,53,56,49,57,16,4,11,11,2,21,3,1,8,101,110,
|
||||
118,49,53,56,50,48,27,248,22,81,248,22,163,4,196,28,248,22,87,193,20,
|
||||
1,8,101,110,118,49,53,56,51,56,16,4,11,11,2,21,3,1,8,101,110,
|
||||
118,49,53,56,51,57,27,248,22,81,248,22,163,4,196,28,248,22,87,193,20,
|
||||
14,159,37,36,37,28,248,22,87,248,22,81,194,248,22,80,193,249,22,156,4,
|
||||
80,158,39,36,250,22,89,2,22,248,22,89,249,22,89,248,22,89,2,23,248,
|
||||
22,80,201,251,22,89,2,18,2,23,2,23,249,22,79,2,5,248,22,81,204,
|
||||
18,100,11,13,16,6,36,2,14,2,2,11,11,11,8,32,8,31,8,30,8,
|
||||
29,16,4,11,11,2,20,3,1,8,101,110,118,49,53,56,50,50,16,4,11,
|
||||
11,2,21,3,1,8,101,110,118,49,53,56,50,51,248,22,163,4,193,27,248,
|
||||
29,16,4,11,11,2,20,3,1,8,101,110,118,49,53,56,52,49,16,4,11,
|
||||
11,2,21,3,1,8,101,110,118,49,53,56,52,50,248,22,163,4,193,27,248,
|
||||
22,163,4,194,249,22,79,248,22,89,248,22,80,196,248,22,81,195,27,248,22,
|
||||
81,248,22,163,4,23,197,1,249,22,156,4,80,158,39,36,28,248,22,64,248,
|
||||
22,157,4,248,22,80,23,198,2,27,249,22,2,32,0,88,163,8,36,37,43,
|
||||
|
@ -67,8 +67,8 @@
|
|||
22,89,2,18,28,249,22,151,9,248,22,157,4,248,22,80,200,64,101,108,115,
|
||||
101,10,248,22,80,197,250,22,90,2,22,9,248,22,81,200,249,22,79,2,3,
|
||||
248,22,81,202,99,13,16,6,36,2,14,2,2,11,11,11,8,32,8,31,8,
|
||||
30,8,29,16,4,11,11,2,20,3,1,8,101,110,118,49,53,56,52,53,16,
|
||||
4,11,11,2,21,3,1,8,101,110,118,49,53,56,52,54,18,158,94,10,64,
|
||||
30,8,29,16,4,11,11,2,20,3,1,8,101,110,118,49,53,56,54,52,16,
|
||||
4,11,11,2,21,3,1,8,101,110,118,49,53,56,54,53,18,158,94,10,64,
|
||||
118,111,105,100,8,48,27,248,22,81,248,22,163,4,196,249,22,156,4,80,158,
|
||||
39,36,28,248,22,64,248,22,157,4,248,22,80,197,250,22,89,2,28,248,22,
|
||||
89,248,22,80,199,248,22,104,198,27,248,22,157,4,248,22,80,197,250,22,89,
|
||||
|
@ -99,7 +99,7 @@
|
|||
EVAL_ONE_SIZED_STR((char *)expr, 2029);
|
||||
}
|
||||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,52,84,0,0,0,0,0,0,0,0,0,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,53,84,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,115,0,0,0,1,0,0,8,0,21,
|
||||
0,26,0,43,0,65,0,94,0,109,0,127,0,139,0,155,0,169,0,191,0,
|
||||
207,0,224,0,246,0,1,1,7,1,16,1,23,1,30,1,42,1,58,1,82,
|
||||
|
@ -362,7 +362,7 @@
|
|||
22,164,2,195,88,163,8,36,38,48,11,9,223,3,33,89,28,197,86,94,20,
|
||||
18,159,11,80,158,42,48,193,20,18,159,11,80,158,42,49,196,86,94,20,18,
|
||||
159,11,80,158,42,54,193,20,18,159,11,80,158,42,55,196,193,28,193,80,158,
|
||||
38,48,80,158,38,54,248,22,9,88,163,8,32,37,8,40,8,240,0,120,47,
|
||||
38,48,80,158,38,54,248,22,8,88,163,8,32,37,8,40,8,240,0,120,47,
|
||||
0,9,224,1,2,33,90,0,7,35,114,120,34,47,43,34,28,248,22,141,7,
|
||||
23,195,2,27,249,22,166,15,2,92,196,28,192,28,249,22,191,3,248,22,103,
|
||||
195,248,22,181,3,248,22,144,7,198,249,22,7,250,22,163,7,199,36,248,22,
|
||||
|
@ -529,7 +529,7 @@
|
|||
EVAL_ONE_SIZED_STR((char *)expr, 8952);
|
||||
}
|
||||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,52,84,0,0,0,0,0,0,0,0,0,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,53,84,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,
|
||||
179,1,0,0,74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,1,23,
|
||||
|
@ -556,24 +556,25 @@
|
|||
EVAL_ONE_SIZED_STR((char *)expr, 502);
|
||||
}
|
||||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,52,84,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,83,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,100,1,104,1,122,1,127,1,132,1,141,1,146,1,161,1,168,1,
|
||||
173,1,177,1,182,1,189,1,200,1,207,1,215,1,224,1,232,1,33,2,153,
|
||||
2,235,2,0,3,21,3,51,3,81,3,139,3,197,3,246,3,39,4,130,10,
|
||||
181,10,244,10,7,11,21,11,179,11,192,11,70,12,112,13,236,13,242,13,14,
|
||||
14,27,14,189,14,196,14,250,14,16,15,36,15,91,15,101,15,115,15,152,15,
|
||||
250,15,252,15,99,16,24,24,77,24,101,24,125,24,0,0,53,28,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,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,53,84,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,1,0,0,7,0,18,
|
||||
0,45,0,51,0,60,0,67,0,89,0,102,0,128,0,145,0,167,0,175,0,
|
||||
187,0,202,0,218,0,236,0,0,1,12,1,28,1,51,1,63,1,94,1,101,
|
||||
1,106,1,111,1,117,1,121,1,139,1,144,1,149,1,158,1,163,1,178,1,
|
||||
185,1,190,1,194,1,199,1,206,1,217,1,224,1,232,1,241,1,249,1,50,
|
||||
2,170,2,252,2,17,3,38,3,68,3,98,3,156,3,214,3,7,4,56,4,
|
||||
157,11,175,11,226,11,33,12,52,12,66,12,224,12,237,12,115,13,157,14,180,
|
||||
15,186,15,214,15,227,15,133,16,140,16,194,16,216,16,236,16,35,17,45,17,
|
||||
59,17,96,17,194,17,196,17,46,18,229,25,26,26,50,26,74,26,0,0,35,
|
||||
30,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,68,35,37,112,97,114,97,109,122,
|
||||
29,94,2,4,2,5,11,1,20,112,97,114,97,109,101,116,101,114,105,122,97,
|
||||
116,105,111,110,45,107,101,121,29,94,2,4,67,35,37,117,116,105,108,115,11,
|
||||
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,76,114,101,103,105,115,116,101,114,45,122,111,45,112,97,116,
|
||||
104,1,20,100,101,102,97,117,108,116,45,114,101,97,100,101,114,45,103,117,97,
|
||||
114,100,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,
|
||||
|
@ -582,338 +583,361 @@
|
|||
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,5,4,46,114,107,116,63,108,
|
||||
2,5,11,64,98,111,111,116,64,115,101,97,108,5,4,46,114,107,116,63,108,
|
||||
105,98,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,64,
|
||||
115,97,109,101,5,3,46,122,111,6,6,6,110,97,116,105,118,101,64,108,111,
|
||||
111,112,6,12,12,109,111,100,117,108,101,45,112,97,116,104,63,66,115,117,98,
|
||||
109,111,100,6,2,2,46,46,6,1,1,46,64,102,105,108,101,66,112,108,97,
|
||||
110,101,116,6,8,8,109,97,105,110,46,114,107,116,6,4,4,46,114,107,116,
|
||||
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,133,15,197,86,95,23,
|
||||
67,105,103,110,111,114,101,100,249,22,14,195,80,159,38,50,38,249,80,159,38,
|
||||
53,39,195,10,90,159,39,11,89,161,39,36,11,248,22,133,15,197,86,95,23,
|
||||
195,1,23,193,1,28,249,22,164,15,0,11,35,114,120,34,91,46,93,115,115,
|
||||
36,34,248,22,181,14,23,197,1,249,80,159,41,56,39,198,2,25,196,27,28,
|
||||
23,195,2,28,249,22,151,9,23,197,2,80,158,39,50,86,94,23,195,1,80,
|
||||
158,37,51,27,248,22,148,5,23,197,2,27,28,248,22,77,23,195,2,248,22,
|
||||
36,34,248,22,181,14,23,197,1,249,80,159,41,57,39,198,2,26,196,27,28,
|
||||
23,195,2,28,249,22,151,9,23,197,2,80,158,39,51,86,94,23,195,1,80,
|
||||
158,37,52,27,248,22,148,5,23,197,2,27,28,248,22,77,23,195,2,248,22,
|
||||
80,23,195,1,23,194,1,28,248,22,176,14,23,194,2,90,159,39,11,89,161,
|
||||
39,36,11,248,22,133,15,23,197,1,86,95,20,18,159,11,80,158,42,50,199,
|
||||
20,18,159,11,80,158,42,51,192,192,11,11,28,23,193,2,192,86,94,23,193,
|
||||
39,36,11,248,22,133,15,23,197,1,86,95,20,18,159,11,80,158,42,51,199,
|
||||
20,18,159,11,80,158,42,52,192,192,11,11,28,23,193,2,192,86,94,23,193,
|
||||
1,27,247,22,172,5,28,192,192,247,22,153,15,28,24,194,2,12,20,13,159,
|
||||
80,159,36,55,37,80,158,36,53,89,161,37,37,10,249,22,190,4,21,94,2,
|
||||
26,6,19,19,112,108,97,110,101,116,47,114,101,115,111,108,118,101,114,46,114,
|
||||
80,159,36,56,37,80,158,36,54,89,161,37,37,10,249,22,190,4,21,94,2,
|
||||
27,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,250,22,130,15,23,197,1,23,199,1,
|
||||
249,80,159,43,39,39,23,198,1,2,29,250,22,130,15,23,197,1,23,199,1,
|
||||
249,80,159,43,39,39,23,198,1,2,29,252,22,130,15,23,199,1,23,201,1,
|
||||
2,30,247,22,164,8,249,80,159,45,39,39,23,200,1,80,159,45,36,38,252,
|
||||
22,130,15,23,199,1,23,201,1,2,30,247,22,164,8,249,80,159,45,39,39,
|
||||
23,200,1,80,159,45,36,38,27,252,22,130,15,23,200,1,23,202,1,2,30,
|
||||
247,22,164,8,249,80,159,46,39,39,23,201,1,80,159,46,36,38,27,250,22,
|
||||
249,80,159,43,42,39,23,198,1,2,30,250,22,130,15,23,197,1,23,199,1,
|
||||
249,80,159,43,42,39,23,198,1,2,30,252,22,130,15,23,199,1,23,201,1,
|
||||
2,31,247,22,164,8,249,80,159,45,42,39,23,200,1,80,159,45,36,38,252,
|
||||
22,130,15,23,199,1,23,201,1,2,31,247,22,164,8,249,80,159,45,42,39,
|
||||
23,200,1,80,159,45,36,38,27,252,22,130,15,23,200,1,23,202,1,2,31,
|
||||
247,22,164,8,249,80,159,46,42,39,23,201,1,80,159,46,36,38,27,250,22,
|
||||
147,15,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,79,
|
||||
195,194,11,27,252,22,130,15,23,200,1,23,202,1,2,30,247,22,164,8,249,
|
||||
80,159,46,39,39,23,201,1,80,159,46,36,38,27,250,22,147,15,196,11,32,
|
||||
195,194,11,27,252,22,130,15,23,200,1,23,202,1,2,31,247,22,164,8,249,
|
||||
80,159,46,42,39,23,201,1,80,159,46,36,38,27,250,22,147,15,196,11,32,
|
||||
0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,79,195,194,11,27,250,
|
||||
22,130,15,23,198,1,23,200,1,249,80,159,44,39,39,23,199,1,2,29,27,
|
||||
22,130,15,23,198,1,23,200,1,249,80,159,44,42,39,23,199,1,2,30,27,
|
||||
250,22,147,15,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,
|
||||
22,79,195,194,11,27,250,22,130,15,23,198,1,23,200,1,249,80,159,44,39,
|
||||
39,23,199,1,2,29,27,250,22,147,15,196,11,32,0,88,163,8,36,36,41,
|
||||
11,9,222,11,28,192,249,22,79,195,194,11,86,95,28,248,80,159,37,38,39,
|
||||
23,195,2,12,250,22,188,9,2,27,6,12,12,112,97,116,104,45,115,116,114,
|
||||
22,79,195,194,11,27,250,22,130,15,23,198,1,23,200,1,249,80,159,44,42,
|
||||
39,23,199,1,2,30,27,250,22,147,15,196,11,32,0,88,163,8,36,36,41,
|
||||
11,9,222,11,28,192,249,22,79,195,194,11,86,95,28,248,80,159,37,40,39,
|
||||
23,195,2,12,250,22,188,9,2,28,6,12,12,112,97,116,104,45,115,116,114,
|
||||
105,110,103,63,23,197,2,28,28,23,195,2,28,248,22,64,23,196,2,10,28,
|
||||
248,22,88,23,196,2,28,249,22,129,4,248,22,92,23,198,2,37,28,28,248,
|
||||
22,64,248,22,80,23,197,2,10,248,22,149,9,248,22,80,23,197,2,249,22,
|
||||
4,22,64,248,22,81,23,198,2,11,11,11,10,12,250,22,188,9,2,27,6,
|
||||
4,22,64,248,22,81,23,198,2,11,11,11,10,12,250,22,188,9,2,28,6,
|
||||
71,71,40,111,114,47,99,32,35,102,32,115,121,109,98,111,108,63,32,40,99,
|
||||
111,110,115,47,99,32,40,111,114,47,99,32,35,102,32,115,121,109,98,111,108,
|
||||
63,41,32,40,110,111,110,45,101,109,112,116,121,45,108,105,115,116,111,102,32,
|
||||
115,121,109,98,111,108,63,41,41,41,23,197,2,90,159,46,11,89,161,37,36,
|
||||
11,28,248,22,136,15,23,205,2,23,204,2,27,247,22,172,5,28,23,193,2,
|
||||
249,22,137,15,23,207,2,23,195,1,23,205,2,89,161,39,37,11,248,22,133,
|
||||
15,23,205,1,86,94,23,196,1,89,161,38,40,11,28,23,205,2,27,248,22,
|
||||
181,14,23,197,2,27,248,22,135,8,23,195,2,28,28,249,22,131,4,23,195,
|
||||
2,40,249,22,138,8,2,25,249,22,141,8,23,198,2,249,22,183,3,23,199,
|
||||
2,40,11,249,22,7,23,199,2,248,22,185,14,249,22,142,8,250,22,141,8,
|
||||
23,202,1,36,249,22,183,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,151,9,23,
|
||||
199,2,23,197,2,23,193,2,249,22,130,15,23,196,2,23,199,2,89,161,37,
|
||||
43,11,28,23,198,2,28,249,22,151,9,23,200,2,23,197,1,23,193,1,86,
|
||||
94,23,193,1,249,22,130,15,23,196,2,23,200,2,86,94,23,195,1,11,89,
|
||||
161,37,44,11,28,249,22,151,9,23,196,2,68,114,101,108,97,116,105,118,101,
|
||||
86,94,23,194,1,2,28,23,194,1,89,161,37,45,11,247,22,155,15,27,250,
|
||||
22,147,15,23,203,2,11,32,0,88,163,8,36,36,41,11,9,222,11,27,28,
|
||||
23,194,2,249,22,79,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,147,15,23,207,2,11,32,0,88,163,8,
|
||||
36,36,41,11,9,222,11,28,192,249,22,79,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,46,27,88,163,36,37,50,44,66,97,108,116,45,122,111,225,16,14,11,
|
||||
33,47,27,88,163,36,37,52,45,9,225,17,15,11,33,48,27,88,163,36,37,
|
||||
52,45,9,225,18,16,13,33,49,27,28,23,200,2,23,200,2,248,22,149,9,
|
||||
115,121,109,98,111,108,63,41,41,41,23,197,2,27,28,23,196,2,247,22,188,
|
||||
4,11,27,28,23,194,2,250,22,160,2,80,158,41,41,248,22,189,15,247,22,
|
||||
151,13,11,11,27,28,23,194,2,250,22,160,2,248,22,81,23,198,2,23,198,
|
||||
2,11,11,28,23,193,2,86,96,23,197,1,23,195,1,23,194,1,20,13,159,
|
||||
80,159,39,38,37,250,80,159,42,39,37,249,22,33,11,80,159,44,38,37,22,
|
||||
189,4,248,22,104,196,27,248,22,113,194,20,13,159,80,159,40,38,37,250,80,
|
||||
159,43,39,37,249,22,33,11,80,159,45,38,37,22,172,5,28,248,22,176,14,
|
||||
23,197,2,23,196,1,86,94,23,196,1,247,22,153,15,249,247,22,170,5,248,
|
||||
22,80,196,200,86,94,23,193,1,90,159,46,11,89,161,37,36,11,28,248,22,
|
||||
136,15,23,208,2,23,207,2,27,247,22,172,5,28,23,193,2,249,22,137,15,
|
||||
23,210,2,23,195,1,23,208,2,89,161,39,37,11,248,22,133,15,23,208,1,
|
||||
86,94,23,196,1,89,161,38,40,11,28,23,208,2,27,248,22,181,14,23,197,
|
||||
2,27,248,22,135,8,23,195,2,28,28,249,22,131,4,23,195,2,40,249,22,
|
||||
138,8,2,26,249,22,141,8,23,198,2,249,22,183,3,23,199,2,40,11,249,
|
||||
22,7,23,199,2,248,22,185,14,249,22,142,8,250,22,141,8,23,202,1,36,
|
||||
249,22,183,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,151,9,23,199,2,23,197,
|
||||
2,23,193,2,249,22,130,15,23,196,2,23,199,2,89,161,37,43,11,28,23,
|
||||
198,2,28,249,22,151,9,23,200,2,23,197,1,23,193,1,86,94,23,193,1,
|
||||
249,22,130,15,23,196,2,23,200,2,86,94,23,195,1,11,89,161,37,44,11,
|
||||
28,249,22,151,9,23,196,2,68,114,101,108,97,116,105,118,101,86,94,23,194,
|
||||
1,2,29,23,194,1,89,161,37,45,11,247,22,155,15,27,250,22,147,15,23,
|
||||
203,2,11,32,0,88,163,8,36,36,41,11,9,222,11,27,28,23,194,2,249,
|
||||
22,79,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,147,15,23,207,2,11,32,0,88,163,8,36,36,41,11,
|
||||
9,222,11,28,192,249,22,79,23,206,2,194,11,11,27,28,23,195,2,23,195,
|
||||
2,23,194,2,27,88,163,36,37,50,8,64,62,122,111,225,18,13,9,33,47,
|
||||
27,88,163,36,37,50,8,64,66,97,108,116,45,122,111,225,19,14,11,33,48,
|
||||
27,88,163,36,37,52,8,65,9,225,20,15,11,33,49,27,88,163,36,37,52,
|
||||
8,65,9,225,21,16,13,33,50,27,28,23,200,2,23,200,2,248,22,149,9,
|
||||
23,200,2,27,28,23,208,2,28,23,200,2,86,94,23,201,1,23,200,2,248,
|
||||
22,149,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,50,23,216,2,27,28,23,202,2,
|
||||
11,193,28,192,192,28,193,28,23,202,2,28,249,22,131,4,248,22,81,196,248,
|
||||
22,81,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,33,11,80,159,8,26,40,37,22,
|
||||
189,4,11,20,13,159,80,159,57,40,37,250,80,159,8,24,41,37,249,22,33,
|
||||
11,80,159,8,26,40,37,22,172,5,28,248,22,176,14,23,216,2,23,215,1,
|
||||
86,94,23,215,1,247,22,153,15,249,247,22,159,15,248,22,80,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,51,23,217,2,27,28,23,204,2,11,193,28,
|
||||
192,192,28,193,28,203,28,249,22,131,4,248,22,81,196,248,22,81,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,33,11,80,159,
|
||||
8,27,40,37,22,189,4,23,215,1,20,13,159,80,159,58,40,37,250,80,159,
|
||||
8,25,41,37,249,22,33,11,80,159,8,27,40,37,22,172,5,28,248,22,176,
|
||||
14,23,217,2,23,216,1,86,94,23,216,1,247,22,153,15,249,247,22,159,15,
|
||||
248,22,80,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,52,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,131,4,248,22,81,196,248,22,81,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,33,11,80,159,8,28,
|
||||
40,37,22,189,4,11,20,13,159,80,159,59,40,37,250,80,159,8,26,41,37,
|
||||
249,22,33,11,80,159,8,28,40,37,22,172,5,28,248,22,176,14,23,218,2,
|
||||
23,217,1,86,94,23,217,1,247,22,153,15,249,247,22,170,5,248,22,80,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,53,23,215,1,23,219,
|
||||
1,27,28,23,205,2,11,193,28,192,192,28,193,28,204,28,249,22,131,4,248,
|
||||
22,81,196,248,22,81,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,33,11,80,159,8,29,
|
||||
40,37,22,189,4,23,217,1,20,13,159,80,159,8,24,40,37,250,80,159,8,
|
||||
27,41,37,249,22,33,11,80,159,8,29,40,37,22,172,5,28,248,22,176,14,
|
||||
23,219,2,23,218,1,86,94,23,218,1,247,22,153,15,249,247,22,170,5,248,
|
||||
22,80,195,23,28,86,94,23,193,1,28,28,248,22,77,23,220,2,248,22,80,
|
||||
23,220,2,10,27,28,23,199,2,86,94,23,215,1,23,214,1,86,94,23,214,
|
||||
1,23,215,1,28,28,248,22,77,23,221,2,248,22,149,9,248,22,188,14,23,
|
||||
195,2,11,12,20,13,159,80,159,8,25,40,37,250,80,159,8,28,41,37,249,
|
||||
22,33,11,80,159,8,30,40,37,22,189,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,33,11,80,159,8,30,40,37,22,172,5,28,248,22,176,14,23,220,
|
||||
2,23,219,1,86,94,23,219,1,247,22,153,15,249,247,22,170,5,194,23,29,
|
||||
12,27,249,22,171,8,80,159,39,45,38,249,22,190,3,248,22,186,3,248,22,
|
||||
173,2,200,8,128,8,27,28,193,248,22,176,2,194,11,28,192,27,249,22,102,
|
||||
198,195,28,192,248,22,81,193,11,11,27,249,22,190,3,248,22,186,3,248,22,
|
||||
173,2,198,8,128,8,27,249,22,171,8,80,159,40,45,38,195,27,28,193,248,
|
||||
22,176,2,194,11,250,22,172,8,80,159,42,45,38,197,248,22,175,2,249,22,
|
||||
79,249,22,79,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,58,88,163,8,36,37,59,11,2,31,222,33,
|
||||
59,27,249,22,164,15,2,57,23,196,2,28,23,193,2,86,94,23,194,1,249,
|
||||
22,79,248,22,104,23,196,2,27,248,22,113,23,197,1,27,249,22,164,15,2,
|
||||
57,23,196,2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,
|
||||
2,27,248,22,113,23,197,1,27,249,22,164,15,2,57,23,196,2,28,23,193,
|
||||
2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,27,248,22,113,23,197,
|
||||
1,27,249,22,164,15,2,57,23,196,2,28,23,193,2,86,94,23,194,1,249,
|
||||
22,79,248,22,104,23,196,2,248,2,58,248,22,113,23,197,1,248,22,89,194,
|
||||
248,22,89,194,248,22,89,194,248,22,89,194,32,60,88,163,36,37,55,11,2,
|
||||
31,222,33,61,28,248,22,87,248,22,81,23,195,2,249,22,7,9,248,22,80,
|
||||
195,90,159,38,11,89,161,38,36,11,27,248,22,81,196,28,248,22,87,248,22,
|
||||
163,8,36,37,53,8,65,9,225,27,22,18,33,51,23,216,2,27,28,23,202,
|
||||
2,11,193,28,192,192,28,193,28,23,202,2,28,249,22,131,4,248,22,81,196,
|
||||
248,22,81,23,205,2,193,11,11,11,11,86,94,23,197,1,11,28,23,193,2,
|
||||
86,107,23,216,1,23,215,1,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,8,24,38,37,250,80,159,8,27,39,37,249,22,33,
|
||||
11,80,159,8,29,38,37,22,189,4,11,20,13,159,80,159,8,24,38,37,250,
|
||||
80,159,8,27,39,37,249,22,33,11,80,159,8,29,38,37,22,172,5,28,248,
|
||||
22,176,14,23,216,2,23,215,1,86,94,23,215,1,247,22,153,15,249,247,22,
|
||||
159,15,248,22,80,195,23,28,86,94,23,193,1,27,28,23,195,2,28,23,197,
|
||||
1,27,249,22,5,88,163,8,36,37,53,8,65,9,225,28,23,20,33,52,23,
|
||||
217,2,27,28,23,204,2,11,193,28,192,192,28,193,28,203,28,249,22,131,4,
|
||||
248,22,81,196,248,22,81,206,193,11,11,11,11,86,94,23,197,1,11,28,23,
|
||||
193,2,86,104,23,217,1,23,216,1,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,
|
||||
8,25,38,37,250,80,159,8,28,39,37,249,22,33,11,80,159,8,30,38,37,
|
||||
22,189,4,23,215,1,20,13,159,80,159,8,25,38,37,250,80,159,8,28,39,
|
||||
37,249,22,33,11,80,159,8,30,38,37,22,172,5,28,248,22,176,14,23,217,
|
||||
2,23,216,1,86,94,23,216,1,247,22,153,15,249,247,22,159,15,248,22,80,
|
||||
195,23,29,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,8,64,9,225,29,24,20,33,53,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,131,4,248,22,81,196,248,22,81,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,86,94,27,248,
|
||||
22,80,194,28,23,218,2,250,22,158,2,248,22,81,23,222,1,23,222,1,250,
|
||||
22,89,23,199,1,11,23,221,2,12,20,13,159,80,159,8,26,38,37,250,80,
|
||||
159,8,29,39,37,249,22,33,11,80,159,8,31,38,37,22,189,4,11,20,13,
|
||||
159,80,159,8,26,38,37,250,80,159,8,29,39,37,249,22,33,11,80,159,8,
|
||||
31,38,37,22,172,5,28,248,22,176,14,23,218,2,23,217,1,86,94,23,217,
|
||||
1,247,22,153,15,249,247,22,170,5,248,22,80,195,23,30,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,8,64,9,225,30,25,22,33,54,23,215,1,23,219,1,27,28,23,205,2,
|
||||
11,193,28,192,192,28,193,28,204,28,249,22,131,4,248,22,81,196,248,22,81,
|
||||
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,86,94,27,248,22,80,194,28,23,
|
||||
219,2,250,22,158,2,248,22,81,23,223,1,23,223,1,250,22,89,23,199,1,
|
||||
23,221,2,23,222,2,12,20,13,159,80,159,8,27,38,37,250,80,159,8,30,
|
||||
39,37,249,22,33,11,80,159,8,32,38,37,22,189,4,23,217,1,20,13,159,
|
||||
80,159,8,27,38,37,250,80,159,8,30,39,37,249,22,33,11,80,159,8,32,
|
||||
38,37,22,172,5,28,248,22,176,14,23,219,2,23,218,1,86,94,23,218,1,
|
||||
247,22,153,15,249,247,22,170,5,248,22,80,195,23,31,86,94,23,193,1,28,
|
||||
28,248,22,77,23,223,2,248,22,80,23,223,2,10,27,28,23,199,2,86,94,
|
||||
23,215,1,23,214,1,86,94,23,214,1,23,215,1,28,28,248,22,77,23,224,
|
||||
32,0,0,0,2,248,22,149,9,248,22,188,14,23,195,2,11,12,20,13,159,
|
||||
80,159,8,28,38,37,250,80,159,8,31,39,37,249,22,33,11,80,159,8,33,
|
||||
38,37,22,189,4,28,23,33,28,23,202,1,11,195,86,94,23,202,1,11,20,
|
||||
13,159,80,159,8,28,38,37,250,80,159,8,31,39,37,249,22,33,11,80,159,
|
||||
8,33,38,37,22,172,5,28,248,22,176,14,23,220,2,23,219,1,86,94,23,
|
||||
219,1,247,22,153,15,249,247,22,170,5,194,23,32,12,28,193,250,22,158,2,
|
||||
248,22,81,197,195,250,22,89,200,201,202,12,27,249,22,171,8,80,159,39,46,
|
||||
38,249,22,190,3,248,22,186,3,248,22,173,2,200,8,128,8,27,28,193,248,
|
||||
22,176,2,194,11,28,192,27,249,22,102,198,195,28,192,248,22,81,193,11,11,
|
||||
27,249,22,190,3,248,22,186,3,248,22,173,2,198,8,128,8,27,249,22,171,
|
||||
8,80,159,40,46,38,195,27,28,193,248,22,176,2,194,11,250,22,172,8,80,
|
||||
159,42,46,38,197,248,22,175,2,249,22,79,249,22,79,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,60,
|
||||
88,163,8,36,37,59,11,2,32,222,33,61,27,249,22,164,15,2,59,23,196,
|
||||
2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,27,248,
|
||||
22,113,23,197,1,27,249,22,164,15,2,59,23,196,2,28,23,193,2,86,94,
|
||||
23,194,1,249,22,79,248,22,104,23,196,2,27,248,22,113,23,197,1,27,249,
|
||||
22,164,15,2,59,23,196,2,28,23,193,2,86,94,23,194,1,249,22,79,248,
|
||||
22,104,23,196,2,27,248,22,113,23,197,1,27,249,22,164,15,2,59,23,196,
|
||||
2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,248,2,
|
||||
60,248,22,113,23,197,1,248,22,89,194,248,22,89,194,248,22,89,194,248,22,
|
||||
89,194,32,62,88,163,36,37,55,11,2,32,222,33,63,28,248,22,87,248,22,
|
||||
81,23,195,2,249,22,7,9,248,22,80,195,90,159,38,11,89,161,38,36,11,
|
||||
27,248,22,81,196,28,248,22,87,248,22,81,23,195,2,249,22,7,9,248,22,
|
||||
80,195,90,159,38,11,89,161,38,36,11,248,2,60,248,22,81,196,249,22,7,
|
||||
249,22,79,248,22,80,199,196,195,249,22,7,249,22,79,248,22,80,199,196,195,
|
||||
249,22,7,249,22,79,248,22,80,199,196,195,27,27,249,22,164,15,2,57,23,
|
||||
197,2,28,23,193,2,86,94,23,195,1,249,22,79,248,22,104,23,196,2,27,
|
||||
248,22,113,23,197,1,27,249,22,164,15,2,57,23,196,2,28,23,193,2,86,
|
||||
94,23,194,1,249,22,79,248,22,104,23,196,2,27,248,22,113,23,197,1,27,
|
||||
249,22,164,15,2,57,23,196,2,28,23,193,2,86,94,23,194,1,249,22,79,
|
||||
248,22,104,23,196,2,27,248,22,113,23,197,1,27,249,22,164,15,2,57,23,
|
||||
196,2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,248,
|
||||
2,58,248,22,113,23,197,1,248,22,89,194,248,22,89,194,248,22,89,194,248,
|
||||
22,89,195,28,23,195,1,192,28,248,22,87,248,22,81,23,195,2,249,22,7,
|
||||
9,248,22,80,195,27,248,22,81,194,90,159,38,11,89,161,38,36,11,28,248,
|
||||
22,87,248,22,81,23,197,2,249,22,7,9,248,22,80,197,27,248,22,81,196,
|
||||
80,195,90,159,38,11,89,161,38,36,11,27,248,22,81,196,28,248,22,87,248,
|
||||
22,81,23,195,2,249,22,7,9,248,22,80,195,90,159,38,11,89,161,38,36,
|
||||
11,248,2,62,248,22,81,196,249,22,7,249,22,79,248,22,80,199,196,195,249,
|
||||
22,7,249,22,79,248,22,80,199,196,195,249,22,7,249,22,79,248,22,80,199,
|
||||
196,195,27,27,249,22,164,15,2,59,23,197,2,28,23,193,2,86,94,23,195,
|
||||
1,249,22,79,248,22,104,23,196,2,27,248,22,113,23,197,1,27,249,22,164,
|
||||
15,2,59,23,196,2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,
|
||||
23,196,2,27,248,22,113,23,197,1,27,249,22,164,15,2,59,23,196,2,28,
|
||||
23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,27,248,22,113,
|
||||
23,197,1,27,249,22,164,15,2,59,23,196,2,28,23,193,2,86,94,23,194,
|
||||
1,249,22,79,248,22,104,23,196,2,248,2,60,248,22,113,23,197,1,248,22,
|
||||
89,194,248,22,89,194,248,22,89,194,248,22,89,195,28,23,195,1,192,28,248,
|
||||
22,87,248,22,81,23,195,2,249,22,7,9,248,22,80,195,27,248,22,81,194,
|
||||
90,159,38,11,89,161,38,36,11,28,248,22,87,248,22,81,23,197,2,249,22,
|
||||
7,9,248,22,80,197,90,159,38,11,89,161,38,36,11,248,2,60,248,22,81,
|
||||
198,249,22,7,249,22,79,248,22,80,201,196,195,249,22,7,249,22,79,248,22,
|
||||
80,202,196,195,249,22,7,249,22,79,248,22,80,200,196,195,86,95,28,248,22,
|
||||
146,5,195,12,250,22,188,9,2,21,6,21,21,114,101,115,111,108,118,101,100,
|
||||
45,109,111,100,117,108,101,45,112,97,116,104,63,197,28,24,193,2,248,24,194,
|
||||
1,195,86,94,23,193,1,12,27,250,22,160,2,80,159,41,43,38,248,22,189,
|
||||
15,247,22,151,13,11,27,28,23,194,2,193,86,94,23,194,1,27,247,22,140,
|
||||
2,86,94,250,22,158,2,80,159,43,43,38,248,22,189,15,247,22,151,13,195,
|
||||
192,250,22,158,2,195,199,66,97,116,116,97,99,104,251,211,197,198,199,10,32,
|
||||
65,88,163,36,38,47,11,76,102,108,97,116,116,101,110,45,115,117,98,45,112,
|
||||
97,116,104,222,33,68,32,66,88,163,36,40,54,11,2,31,222,33,67,28,248,
|
||||
22,87,23,197,2,28,248,22,87,195,192,249,22,79,194,248,22,94,197,28,249,
|
||||
22,153,9,248,22,80,23,199,2,2,34,28,248,22,87,23,196,2,86,95,23,
|
||||
196,1,23,195,1,250,22,184,9,2,21,6,37,37,116,111,111,32,109,97,110,
|
||||
121,32,34,46,46,34,115,32,105,110,32,115,117,98,109,111,100,117,108,101,32,
|
||||
112,97,116,104,58,32,126,46,115,250,22,90,2,33,28,249,22,153,9,23,201,
|
||||
2,2,35,198,28,248,22,176,14,199,198,249,22,89,28,248,22,64,201,2,4,
|
||||
2,36,200,199,251,2,66,196,197,248,22,81,199,248,22,81,200,251,2,66,196,
|
||||
197,249,22,79,248,22,80,202,200,248,22,81,200,251,2,66,196,197,9,197,27,
|
||||
249,22,164,7,6,31,31,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,58,32,196,28,193,250,
|
||||
22,186,9,11,195,196,248,22,184,9,193,28,249,22,147,7,194,2,35,2,28,
|
||||
28,249,22,147,7,194,2,34,62,117,112,192,32,71,88,163,8,36,37,50,11,
|
||||
67,115,115,45,62,114,107,116,222,33,72,27,248,22,144,7,194,28,249,22,131,
|
||||
4,194,39,28,249,22,147,7,6,3,3,46,115,115,249,22,163,7,197,249,22,
|
||||
183,3,198,39,249,22,164,7,250,22,163,7,198,36,249,22,183,3,199,39,2,
|
||||
39,193,193,0,8,35,114,120,34,91,46,93,34,32,74,88,163,8,36,37,47,
|
||||
11,2,31,222,33,75,28,248,22,87,23,194,2,9,250,22,90,6,4,4,10,
|
||||
32,32,32,248,22,180,14,248,22,105,23,198,2,248,2,74,248,22,81,23,198,
|
||||
1,28,249,22,153,9,248,22,81,23,200,2,23,197,1,28,249,22,151,9,248,
|
||||
22,80,23,200,1,23,196,1,251,22,184,9,2,21,6,41,41,99,121,99,108,
|
||||
101,32,105,110,32,108,111,97,100,105,110,103,10,32,32,97,116,32,112,97,116,
|
||||
104,58,32,126,97,10,32,32,112,97,116,104,115,58,126,97,23,200,1,249,22,
|
||||
1,22,164,7,248,2,74,248,22,94,23,201,1,12,12,247,192,20,13,159,80,
|
||||
159,43,48,38,249,22,79,249,22,79,248,22,189,15,247,22,151,13,23,201,1,
|
||||
23,195,1,20,13,159,80,159,43,40,37,250,80,159,46,41,37,249,22,33,11,
|
||||
80,159,48,40,37,22,188,4,23,198,2,249,247,22,171,5,23,200,1,27,248,
|
||||
22,67,248,22,180,14,23,201,1,28,23,202,2,28,250,22,160,2,23,200,1,
|
||||
23,201,1,11,249,22,79,11,203,249,22,79,194,203,192,86,94,28,248,22,156,
|
||||
5,23,196,2,12,28,23,197,2,250,22,186,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,188,9,2,21,2,
|
||||
32,23,198,2,28,28,248,22,77,23,196,2,249,22,151,9,248,22,80,23,198,
|
||||
2,2,4,11,248,22,147,5,248,22,104,196,28,28,248,22,77,23,196,2,28,
|
||||
249,22,151,9,248,22,80,23,198,2,2,33,28,248,22,77,248,22,104,23,197,
|
||||
2,249,22,151,9,248,22,108,23,198,2,2,4,11,11,11,86,97,23,198,1,
|
||||
23,197,1,23,196,1,23,193,1,248,22,147,5,249,2,65,248,22,121,23,199,
|
||||
2,248,22,106,23,199,1,28,28,248,22,77,23,196,2,28,249,22,151,9,248,
|
||||
22,80,23,198,2,2,33,28,28,249,22,153,9,248,22,104,23,198,2,2,35,
|
||||
10,249,22,153,9,248,22,104,23,198,2,2,34,28,23,196,2,27,248,22,148,
|
||||
5,23,198,2,28,248,22,64,193,10,28,248,22,77,193,248,22,64,248,22,80,
|
||||
194,11,11,11,11,11,86,96,23,198,1,23,197,1,23,193,1,27,248,22,148,
|
||||
5,23,198,1,248,22,147,5,249,2,65,28,248,22,77,23,197,2,248,22,80,
|
||||
23,197,2,23,196,2,27,28,249,22,153,9,248,22,104,23,203,2,2,34,248,
|
||||
22,81,200,248,22,106,200,28,248,22,77,23,198,2,249,22,93,248,22,81,199,
|
||||
194,192,28,28,248,22,77,23,196,2,249,22,151,9,248,22,80,23,198,2,2,
|
||||
37,11,86,94,248,80,159,38,8,26,39,193,253,213,200,201,202,203,11,80,158,
|
||||
43,53,28,28,248,22,77,23,196,2,28,249,22,151,9,248,22,80,23,198,2,
|
||||
2,33,28,248,22,77,248,22,104,23,197,2,249,22,151,9,248,22,108,23,198,
|
||||
2,2,37,11,11,11,86,94,248,80,159,38,8,26,39,193,253,213,248,22,104,
|
||||
201,201,202,203,248,22,106,201,80,158,43,53,86,94,23,193,1,27,88,163,8,
|
||||
36,37,47,11,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,110,45,
|
||||
101,114,114,223,5,33,69,27,28,248,22,77,23,198,2,28,249,22,151,9,2,
|
||||
33,248,22,80,23,200,2,27,248,22,104,23,199,2,28,28,249,22,153,9,23,
|
||||
195,2,2,35,10,249,22,153,9,23,195,2,2,34,86,94,23,193,1,28,23,
|
||||
199,2,27,248,22,148,5,23,201,2,28,248,22,77,193,248,22,80,193,192,250,
|
||||
22,184,9,2,21,6,45,45,110,111,32,98,97,115,101,32,112,97,116,104,32,
|
||||
102,111,114,32,114,101,108,97,116,105,118,101,32,115,117,98,109,111,100,117,108,
|
||||
101,32,112,97,116,104,58,32,126,46,115,23,201,2,192,23,197,2,23,197,2,
|
||||
27,28,248,22,77,23,199,2,28,249,22,151,9,2,33,248,22,80,23,201,2,
|
||||
27,28,28,28,249,22,153,9,248,22,104,23,202,2,2,35,10,249,22,153,9,
|
||||
248,22,104,23,202,2,2,34,23,200,2,11,27,248,22,148,5,23,202,2,27,
|
||||
28,249,22,153,9,248,22,104,23,204,2,2,34,248,22,81,23,202,1,248,22,
|
||||
106,23,202,1,28,248,22,77,23,195,2,249,2,65,248,22,80,23,197,2,249,
|
||||
22,93,248,22,81,23,199,1,23,197,1,249,2,65,23,196,1,23,195,1,249,
|
||||
2,65,2,35,28,249,22,153,9,248,22,104,23,204,2,2,34,248,22,81,23,
|
||||
202,1,248,22,106,23,202,1,28,248,22,77,193,248,22,81,193,11,11,11,27,
|
||||
28,248,22,64,23,196,2,27,248,80,159,43,46,39,249,22,79,23,199,2,247,
|
||||
22,154,15,28,23,193,2,192,86,94,23,193,1,90,159,38,11,89,161,38,36,
|
||||
11,249,80,159,46,52,39,248,22,70,23,201,2,11,27,28,248,22,87,23,195,
|
||||
2,2,38,249,22,164,7,23,197,2,2,39,251,80,159,49,57,39,23,204,1,
|
||||
28,248,22,87,23,199,2,23,199,1,86,94,23,199,1,248,22,80,23,199,2,
|
||||
28,248,22,87,23,199,2,86,94,23,198,1,9,248,22,81,23,199,1,23,197,
|
||||
1,28,248,22,141,7,23,196,2,86,94,23,196,1,27,248,80,159,43,8,27,
|
||||
39,23,202,2,27,248,80,159,44,46,39,249,22,79,23,200,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,
|
||||
47,52,39,23,201,2,11,250,22,1,22,130,15,23,199,1,249,22,93,249,22,
|
||||
2,32,0,88,163,8,36,37,44,11,9,222,33,70,23,200,1,248,22,89,248,
|
||||
2,71,23,201,1,28,248,22,176,14,23,196,2,86,94,23,196,1,248,80,159,
|
||||
42,8,28,39,248,22,139,15,28,248,22,136,15,23,198,2,23,197,2,249,22,
|
||||
137,15,23,199,2,248,80,159,46,8,27,39,23,205,2,28,249,22,151,9,248,
|
||||
22,80,23,198,2,2,26,27,248,80,159,43,46,39,249,22,79,23,199,2,247,
|
||||
22,154,15,28,23,193,2,192,86,94,23,193,1,90,159,39,11,89,161,38,36,
|
||||
11,249,80,159,47,52,39,248,22,104,23,202,2,11,89,161,37,38,11,28,248,
|
||||
22,87,248,22,106,23,201,2,28,248,22,87,23,194,2,249,22,168,15,2,73,
|
||||
23,196,2,11,10,27,28,23,196,2,248,2,71,23,196,2,28,248,22,87,23,
|
||||
195,2,2,38,28,249,22,168,15,2,73,23,197,2,248,2,71,23,196,2,249,
|
||||
22,164,7,23,197,2,2,39,27,28,23,197,1,86,94,23,196,1,249,22,93,
|
||||
28,248,22,87,248,22,106,23,205,2,21,93,6,5,5,109,122,108,105,98,249,
|
||||
22,1,22,93,249,22,2,80,159,53,8,29,39,248,22,106,23,208,2,23,197,
|
||||
1,28,248,22,87,23,196,2,86,94,23,195,1,248,22,89,23,197,1,86,94,
|
||||
23,196,1,23,195,1,251,80,159,51,57,39,23,206,1,248,22,80,23,198,2,
|
||||
248,22,81,23,198,1,23,198,1,28,249,22,151,9,248,22,80,23,198,2,2,
|
||||
36,248,80,159,42,8,28,39,248,22,139,15,249,22,137,15,248,22,141,15,248,
|
||||
22,104,23,201,2,248,80,159,46,8,27,39,23,205,2,12,86,94,28,28,248,
|
||||
22,176,14,23,194,2,10,248,22,166,8,23,194,2,86,94,23,201,1,12,28,
|
||||
23,201,2,250,22,186,9,67,114,101,113,117,105,114,101,249,22,189,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,80,23,199,2,6,0,0,23,204,1,86,94,23,201,1,250,22,188,
|
||||
9,2,21,2,32,23,198,2,27,28,248,22,166,8,23,195,2,249,22,171,8,
|
||||
23,196,2,36,249,22,139,15,248,22,140,15,23,197,2,11,27,28,248,22,166,
|
||||
8,23,196,2,249,22,171,8,23,197,2,37,248,80,159,44,58,39,23,195,2,
|
||||
90,159,39,11,89,161,39,36,11,28,248,22,166,8,23,199,2,250,22,7,2,
|
||||
40,249,22,171,8,23,203,2,38,2,40,248,22,133,15,23,198,2,86,95,23,
|
||||
195,1,23,193,1,27,28,248,22,166,8,23,200,2,249,22,171,8,23,201,2,
|
||||
39,249,80,159,49,56,39,23,197,2,5,0,27,28,248,22,166,8,23,201,2,
|
||||
249,22,171,8,23,202,2,40,248,22,147,5,23,200,2,27,250,22,160,2,80,
|
||||
159,52,43,38,248,22,189,15,247,22,151,13,11,27,28,23,194,2,23,194,1,
|
||||
86,94,23,194,1,27,247,22,140,2,86,94,250,22,158,2,80,159,54,43,38,
|
||||
248,22,189,15,247,22,151,13,195,192,27,28,23,204,2,248,22,147,5,249,22,
|
||||
79,248,22,148,5,23,200,2,23,207,2,23,196,2,86,95,28,23,212,1,27,
|
||||
250,22,160,2,23,198,2,196,11,28,23,193,1,12,86,94,27,27,28,248,22,
|
||||
17,80,159,55,49,38,80,159,54,49,38,247,22,19,251,22,33,11,80,159,58,
|
||||
48,38,9,23,197,1,27,248,22,189,15,247,22,151,13,86,94,249,22,3,20,
|
||||
20,94,88,163,8,36,37,54,11,9,226,14,13,2,3,33,76,23,195,1,23,
|
||||
196,2,248,28,248,22,17,80,159,56,49,38,32,0,88,163,36,37,42,11,9,
|
||||
222,33,77,80,159,55,8,30,39,20,20,95,88,163,36,36,55,8,176,64,9,
|
||||
230,19,15,13,12,8,7,5,2,33,78,23,195,1,23,208,1,250,22,158,2,
|
||||
23,198,1,196,10,12,28,28,248,22,166,8,23,204,1,11,28,248,22,141,7,
|
||||
23,206,2,10,28,248,22,64,23,206,2,10,28,248,22,77,23,206,2,249,22,
|
||||
151,9,248,22,80,23,208,2,2,26,11,249,80,159,53,47,39,28,248,22,141,
|
||||
7,23,208,2,249,22,79,23,209,1,248,80,159,56,8,27,39,23,215,1,86,
|
||||
94,23,212,1,249,22,79,23,209,1,247,22,154,15,252,22,168,8,23,209,1,
|
||||
23,208,1,23,206,1,23,204,1,23,203,1,12,192,86,96,20,18,159,11,80,
|
||||
158,36,53,248,80,159,37,8,25,37,249,22,33,11,80,159,39,55,37,248,22,
|
||||
187,4,80,159,37,54,38,248,22,171,5,80,159,37,37,39,248,22,145,14,80,
|
||||
159,37,42,39,20,18,159,11,80,158,36,53,248,80,159,37,8,25,37,249,22,
|
||||
33,11,80,159,39,55,37,20,18,159,11,80,158,36,53,248,80,159,37,8,25,
|
||||
37,249,22,33,11,80,159,39,55,37,159,36,20,113,159,36,16,1,11,16,0,
|
||||
20,26,144,9,2,1,2,1,29,11,11,11,9,9,11,11,11,10,38,80,158,
|
||||
36,36,20,113,159,41,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,22,20,
|
||||
15,16,2,88,163,36,37,45,8,128,128,9,223,0,33,41,80,159,36,8,30,
|
||||
39,20,15,16,2,88,163,8,36,37,45,8,240,0,0,1,0,9,223,0,33,
|
||||
42,80,159,36,8,29,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,43,80,159,36,
|
||||
8,28,39,20,15,16,2,88,163,36,37,50,8,240,0,192,0,0,67,103,101,
|
||||
116,45,100,105,114,223,0,33,44,80,159,36,8,27,39,20,15,16,2,88,164,
|
||||
8,34,37,45,8,240,0,0,10,0,1,21,112,114,101,112,45,112,108,97,110,
|
||||
101,116,45,114,101,115,111,108,118,101,114,33,37,224,1,0,33,45,80,159,36,
|
||||
8,26,39,20,15,16,2,248,22,163,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,54,80,159,36,37,37,20,15,16,2,20,27,158,32,0,88,163,8,36,37,
|
||||
42,11,2,9,222,192,32,0,88,163,8,36,37,42,11,2,9,222,192,80,159,
|
||||
36,42,37,20,15,16,2,247,22,143,2,80,159,36,43,37,20,15,16,2,8,
|
||||
128,8,80,159,36,44,37,20,15,16,2,249,22,167,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,
|
||||
55,80,159,36,46,37,20,15,16,2,88,163,8,36,38,55,8,128,8,2,14,
|
||||
223,0,33,56,80,159,36,47,37,20,15,16,2,247,22,75,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,62,
|
||||
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,63,88,163,36,39,49,11,9,223,0,33,
|
||||
64,88,163,36,40,8,32,16,2,8,176,242,8,240,115,124,0,0,9,224,2,
|
||||
1,33,79,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,80,80,159,36,59,37,20,15,16,2,20,27,158,
|
||||
88,163,8,36,36,45,8,240,0,0,10,2,2,24,223,0,33,81,88,163,8,
|
||||
36,36,45,8,240,0,0,10,2,2,24,223,0,33,82,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, 7430);
|
||||
7,9,248,22,80,197,27,248,22,81,196,90,159,38,11,89,161,38,36,11,28,
|
||||
248,22,87,248,22,81,23,197,2,249,22,7,9,248,22,80,197,90,159,38,11,
|
||||
89,161,38,36,11,248,2,62,248,22,81,198,249,22,7,249,22,79,248,22,80,
|
||||
201,196,195,249,22,7,249,22,79,248,22,80,202,196,195,249,22,7,249,22,79,
|
||||
248,22,80,200,196,195,86,96,28,248,22,146,5,23,196,2,12,250,22,188,9,
|
||||
2,22,6,21,21,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,
|
||||
112,97,116,104,63,23,198,2,28,28,23,196,2,248,22,152,13,23,197,2,10,
|
||||
12,250,22,188,9,2,22,6,20,20,40,111,114,47,99,32,35,102,32,110,97,
|
||||
109,101,115,112,97,99,101,63,41,23,199,2,28,24,193,2,248,24,194,1,23,
|
||||
196,2,86,94,23,193,1,12,27,250,22,160,2,80,159,41,41,38,248,22,189,
|
||||
15,247,22,151,13,11,27,28,23,194,2,23,194,1,86,94,23,194,1,27,249,
|
||||
22,79,247,22,140,2,247,22,140,2,86,94,250,22,158,2,80,159,43,41,38,
|
||||
248,22,189,15,247,22,151,13,195,192,86,94,250,22,158,2,248,22,80,23,197,
|
||||
2,23,200,2,68,100,101,99,108,97,114,101,100,28,23,198,2,27,28,248,22,
|
||||
77,248,22,148,5,23,200,2,248,22,147,5,248,22,80,248,22,148,5,23,201,
|
||||
1,23,198,1,27,250,22,160,2,80,159,44,41,38,248,22,189,15,23,204,1,
|
||||
11,28,23,193,2,27,250,22,160,2,248,22,81,23,198,1,197,11,28,192,250,
|
||||
22,158,2,248,22,81,199,197,195,12,12,12,251,211,197,198,199,10,32,67,88,
|
||||
163,36,38,47,11,76,102,108,97,116,116,101,110,45,115,117,98,45,112,97,116,
|
||||
104,222,33,70,32,68,88,163,36,40,54,11,2,32,222,33,69,28,248,22,87,
|
||||
23,197,2,28,248,22,87,195,192,249,22,79,194,248,22,94,197,28,249,22,153,
|
||||
9,248,22,80,23,199,2,2,35,28,248,22,87,23,196,2,86,95,23,196,1,
|
||||
23,195,1,250,22,184,9,2,22,6,37,37,116,111,111,32,109,97,110,121,32,
|
||||
34,46,46,34,115,32,105,110,32,115,117,98,109,111,100,117,108,101,32,112,97,
|
||||
116,104,58,32,126,46,115,250,22,90,2,34,28,249,22,153,9,23,201,2,2,
|
||||
36,198,28,248,22,176,14,199,198,249,22,89,28,248,22,64,201,2,4,2,37,
|
||||
200,199,251,2,68,196,197,248,22,81,199,248,22,81,200,251,2,68,196,197,249,
|
||||
22,79,248,22,80,202,200,248,22,81,200,251,2,68,196,197,9,197,27,249,22,
|
||||
164,7,6,31,31,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,58,32,196,28,193,250,22,186,
|
||||
9,11,195,196,248,22,184,9,193,28,249,22,147,7,194,2,36,2,29,28,249,
|
||||
22,147,7,194,2,35,62,117,112,192,32,73,88,163,8,36,37,50,11,67,115,
|
||||
115,45,62,114,107,116,222,33,74,27,248,22,144,7,194,28,249,22,131,4,194,
|
||||
39,28,249,22,147,7,6,3,3,46,115,115,249,22,163,7,197,249,22,183,3,
|
||||
198,39,249,22,164,7,250,22,163,7,198,36,249,22,183,3,199,39,2,40,193,
|
||||
193,0,8,35,114,120,34,91,46,93,34,32,76,88,163,8,36,37,47,11,2,
|
||||
32,222,33,77,28,248,22,87,23,194,2,9,250,22,90,6,4,4,10,32,32,
|
||||
32,248,22,180,14,248,22,105,23,198,2,248,2,76,248,22,81,23,198,1,28,
|
||||
249,22,153,9,248,22,81,23,200,2,23,197,1,28,249,22,151,9,248,22,80,
|
||||
23,200,1,23,196,1,251,22,184,9,2,22,6,41,41,99,121,99,108,101,32,
|
||||
105,110,32,108,111,97,100,105,110,103,10,32,32,97,116,32,112,97,116,104,58,
|
||||
32,126,97,10,32,32,112,97,116,104,115,58,126,97,23,200,1,249,22,1,22,
|
||||
164,7,248,2,76,248,22,94,23,201,1,12,12,247,192,20,13,159,80,159,43,
|
||||
49,38,249,22,79,249,22,79,248,22,189,15,247,22,151,13,23,201,1,23,195,
|
||||
1,20,13,159,80,159,43,38,37,250,80,159,46,39,37,249,22,33,11,80,159,
|
||||
48,38,37,22,188,4,23,198,2,249,247,22,171,5,23,200,1,27,248,22,67,
|
||||
248,22,180,14,23,201,1,28,23,202,2,28,250,22,160,2,248,22,80,23,201,
|
||||
1,23,201,1,11,249,22,79,11,203,249,22,79,194,203,192,86,94,28,248,22,
|
||||
156,5,23,196,2,12,28,23,197,2,250,22,186,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,188,9,2,22,
|
||||
2,33,23,198,2,28,28,248,22,77,23,196,2,249,22,151,9,248,22,80,23,
|
||||
198,2,2,4,11,248,22,147,5,248,22,104,196,28,28,248,22,77,23,196,2,
|
||||
28,249,22,151,9,248,22,80,23,198,2,2,34,28,248,22,77,248,22,104,23,
|
||||
197,2,249,22,151,9,248,22,108,23,198,2,2,4,11,11,11,86,97,23,198,
|
||||
1,23,197,1,23,196,1,23,193,1,248,22,147,5,249,2,67,248,22,121,23,
|
||||
199,2,248,22,106,23,199,1,28,28,248,22,77,23,196,2,28,249,22,151,9,
|
||||
248,22,80,23,198,2,2,34,28,28,249,22,153,9,248,22,104,23,198,2,2,
|
||||
36,10,249,22,153,9,248,22,104,23,198,2,2,35,28,23,196,2,27,248,22,
|
||||
148,5,23,198,2,28,248,22,64,193,10,28,248,22,77,193,248,22,64,248,22,
|
||||
80,194,11,11,11,11,11,86,96,23,198,1,23,197,1,23,193,1,27,248,22,
|
||||
148,5,23,198,1,248,22,147,5,249,2,67,28,248,22,77,23,197,2,248,22,
|
||||
80,23,197,2,23,196,2,27,28,249,22,153,9,248,22,104,23,203,2,2,35,
|
||||
248,22,81,200,248,22,106,200,28,248,22,77,23,198,2,249,22,93,248,22,81,
|
||||
199,194,192,28,28,248,22,77,23,196,2,249,22,151,9,248,22,80,23,198,2,
|
||||
2,38,11,86,94,248,80,159,38,8,27,39,193,253,213,200,201,202,203,11,80,
|
||||
158,43,54,28,28,248,22,77,23,196,2,28,249,22,151,9,248,22,80,23,198,
|
||||
2,2,34,28,248,22,77,248,22,104,23,197,2,249,22,151,9,248,22,108,23,
|
||||
198,2,2,38,11,11,11,86,94,248,80,159,38,8,27,39,193,253,213,248,22,
|
||||
104,201,201,202,203,248,22,106,201,80,158,43,54,86,94,23,193,1,27,88,163,
|
||||
8,36,37,47,11,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,110,
|
||||
45,101,114,114,223,5,33,71,27,28,248,22,77,23,198,2,28,249,22,151,9,
|
||||
2,34,248,22,80,23,200,2,27,248,22,104,23,199,2,28,28,249,22,153,9,
|
||||
23,195,2,2,36,10,249,22,153,9,23,195,2,2,35,86,94,23,193,1,28,
|
||||
23,199,2,27,248,22,148,5,23,201,2,28,248,22,77,193,248,22,80,193,192,
|
||||
250,22,184,9,2,22,6,45,45,110,111,32,98,97,115,101,32,112,97,116,104,
|
||||
32,102,111,114,32,114,101,108,97,116,105,118,101,32,115,117,98,109,111,100,117,
|
||||
108,101,32,112,97,116,104,58,32,126,46,115,23,201,2,192,23,197,2,23,197,
|
||||
2,27,28,248,22,77,23,199,2,28,249,22,151,9,2,34,248,22,80,23,201,
|
||||
2,27,28,28,28,249,22,153,9,248,22,104,23,202,2,2,36,10,249,22,153,
|
||||
9,248,22,104,23,202,2,2,35,23,200,2,11,27,248,22,148,5,23,202,2,
|
||||
27,28,249,22,153,9,248,22,104,23,204,2,2,35,248,22,81,23,202,1,248,
|
||||
22,106,23,202,1,28,248,22,77,23,195,2,249,2,67,248,22,80,23,197,2,
|
||||
249,22,93,248,22,81,23,199,1,23,197,1,249,2,67,23,196,1,23,195,1,
|
||||
249,2,67,2,36,28,249,22,153,9,248,22,104,23,204,2,2,35,248,22,81,
|
||||
23,202,1,248,22,106,23,202,1,28,248,22,77,193,248,22,81,193,11,11,11,
|
||||
27,28,248,22,64,23,196,2,27,248,80,159,43,47,39,249,22,79,23,199,2,
|
||||
247,22,154,15,28,23,193,2,192,86,94,23,193,1,90,159,38,11,89,161,38,
|
||||
36,11,249,80,159,46,53,39,248,22,70,23,201,2,11,27,28,248,22,87,23,
|
||||
195,2,2,39,249,22,164,7,23,197,2,2,40,251,80,159,49,58,39,23,204,
|
||||
1,28,248,22,87,23,199,2,23,199,1,86,94,23,199,1,248,22,80,23,199,
|
||||
2,28,248,22,87,23,199,2,86,94,23,198,1,9,248,22,81,23,199,1,23,
|
||||
197,1,28,248,22,141,7,23,196,2,86,94,23,196,1,27,248,80,159,43,8,
|
||||
28,39,23,202,2,27,248,80,159,44,47,39,249,22,79,23,200,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,47,53,39,23,201,2,11,250,22,1,22,130,15,23,199,1,249,22,93,249,
|
||||
22,2,32,0,88,163,8,36,37,44,11,9,222,33,72,23,200,1,248,22,89,
|
||||
248,2,73,23,201,1,28,248,22,176,14,23,196,2,86,94,23,196,1,248,80,
|
||||
159,42,8,29,39,248,22,139,15,28,248,22,136,15,23,198,2,23,197,2,249,
|
||||
22,137,15,23,199,2,248,80,159,46,8,28,39,23,205,2,28,249,22,151,9,
|
||||
248,22,80,23,198,2,2,27,27,248,80,159,43,47,39,249,22,79,23,199,2,
|
||||
247,22,154,15,28,23,193,2,192,86,94,23,193,1,90,159,39,11,89,161,38,
|
||||
36,11,249,80,159,47,53,39,248,22,104,23,202,2,11,89,161,37,38,11,28,
|
||||
248,22,87,248,22,106,23,201,2,28,248,22,87,23,194,2,249,22,168,15,2,
|
||||
75,23,196,2,11,10,27,28,23,196,2,248,2,73,23,196,2,28,248,22,87,
|
||||
23,195,2,2,39,28,249,22,168,15,2,75,23,197,2,248,2,73,23,196,2,
|
||||
249,22,164,7,23,197,2,2,40,27,28,23,197,1,86,94,23,196,1,249,22,
|
||||
93,28,248,22,87,248,22,106,23,205,2,21,93,6,5,5,109,122,108,105,98,
|
||||
249,22,1,22,93,249,22,2,80,159,53,8,30,39,248,22,106,23,208,2,23,
|
||||
197,1,28,248,22,87,23,196,2,86,94,23,195,1,248,22,89,23,197,1,86,
|
||||
94,23,196,1,23,195,1,251,80,159,51,58,39,23,206,1,248,22,80,23,198,
|
||||
2,248,22,81,23,198,1,23,198,1,28,249,22,151,9,248,22,80,23,198,2,
|
||||
2,37,248,80,159,42,8,29,39,248,22,139,15,249,22,137,15,248,22,141,15,
|
||||
248,22,104,23,201,2,248,80,159,46,8,28,39,23,205,2,12,86,94,28,28,
|
||||
248,22,176,14,23,194,2,10,248,22,166,8,23,194,2,86,94,23,201,1,12,
|
||||
28,23,201,2,250,22,186,9,67,114,101,113,117,105,114,101,249,22,189,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,80,23,199,2,6,0,0,23,204,1,86,94,23,201,1,250,22,
|
||||
188,9,2,22,2,33,23,198,2,27,28,248,22,166,8,23,195,2,249,22,171,
|
||||
8,23,196,2,36,249,22,139,15,248,22,140,15,23,197,2,11,27,28,248,22,
|
||||
166,8,23,196,2,249,22,171,8,23,197,2,37,248,80,159,44,59,39,23,195,
|
||||
2,90,159,39,11,89,161,39,36,11,28,248,22,166,8,23,199,2,250,22,7,
|
||||
2,41,249,22,171,8,23,203,2,38,2,41,248,22,133,15,23,198,2,86,95,
|
||||
23,195,1,23,193,1,27,28,248,22,166,8,23,200,2,249,22,171,8,23,201,
|
||||
2,39,249,80,159,49,57,39,23,197,2,5,0,27,28,248,22,166,8,23,201,
|
||||
2,249,22,171,8,23,202,2,40,248,22,147,5,23,200,2,27,250,22,160,2,
|
||||
80,159,52,41,38,248,22,189,15,247,22,151,13,11,27,28,23,194,2,23,194,
|
||||
1,86,94,23,194,1,27,249,22,79,247,22,140,2,247,22,140,2,86,94,250,
|
||||
22,158,2,80,159,54,41,38,248,22,189,15,247,22,151,13,195,192,27,28,23,
|
||||
204,2,248,22,147,5,249,22,79,248,22,148,5,23,200,2,23,207,2,23,196,
|
||||
2,86,95,28,23,212,1,27,250,22,160,2,248,22,80,23,199,2,196,11,28,
|
||||
23,193,1,12,27,27,28,248,22,17,80,159,55,50,38,80,159,54,50,38,247,
|
||||
22,19,251,22,33,11,80,159,58,49,38,9,23,197,1,27,248,22,189,15,247,
|
||||
22,151,13,86,94,249,22,3,20,20,94,88,163,8,36,37,54,11,9,226,14,
|
||||
13,2,3,33,78,23,195,1,23,196,2,248,28,248,22,17,80,159,56,50,38,
|
||||
32,0,88,163,36,37,42,11,9,222,33,79,80,159,55,8,31,39,20,20,96,
|
||||
88,163,36,36,56,8,140,128,9,230,19,15,13,12,8,7,5,2,33,80,23,
|
||||
195,1,23,198,1,23,208,1,12,28,28,248,22,166,8,23,204,1,11,28,248,
|
||||
22,141,7,23,206,2,10,28,248,22,64,23,206,2,10,28,248,22,77,23,206,
|
||||
2,249,22,151,9,248,22,80,23,208,2,2,27,11,249,80,159,53,48,39,28,
|
||||
248,22,141,7,23,208,2,249,22,79,23,209,1,248,80,159,56,8,28,39,23,
|
||||
215,1,86,94,23,212,1,249,22,79,23,209,1,247,22,154,15,252,22,168,8,
|
||||
23,209,1,23,208,1,23,206,1,23,204,1,23,203,1,12,192,86,96,20,18,
|
||||
159,11,80,158,36,54,248,80,159,37,8,26,37,249,22,33,11,80,159,39,56,
|
||||
37,248,22,187,4,80,159,37,55,38,248,22,171,5,80,159,37,37,39,248,22,
|
||||
145,14,80,159,37,44,39,20,18,159,11,80,158,36,54,248,80,159,37,8,26,
|
||||
37,249,22,33,11,80,159,39,56,37,20,18,159,11,80,158,36,54,248,80,159,
|
||||
37,8,26,37,249,22,33,11,80,159,39,56,37,159,36,20,113,159,36,16,1,
|
||||
11,16,0,20,26,144,9,2,1,2,1,29,11,11,11,9,9,11,11,11,10,
|
||||
38,80,158,36,36,20,113,159,41,16,27,2,2,2,3,30,2,6,2,7,6,
|
||||
30,2,6,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,30,2,8,72,112,97,116,104,45,115,116,114,105,
|
||||
110,103,63,11,2,9,30,2,8,75,112,97,116,104,45,97,100,100,45,115,117,
|
||||
102,102,105,120,8,2,10,2,11,2,12,2,13,2,14,2,15,2,16,2,17,
|
||||
2,18,2,19,2,20,2,21,2,22,30,2,23,2,7,6,30,2,8,79,112,
|
||||
97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120,10,30,2,
|
||||
8,73,102,105,110,100,45,99,111,108,45,102,105,108,101,3,30,2,8,76,110,
|
||||
111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,7,2,24,2,25,30,
|
||||
2,23,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,15,2,16,2,17,2,9,2,13,2,18,2,19,2,12,
|
||||
2,3,2,11,2,2,2,14,2,15,2,10,2,20,2,22,51,11,11,11,16,
|
||||
3,2,24,2,21,2,25,16,3,11,11,11,16,3,2,24,2,21,2,25,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,23,20,15,16,2,88,163,36,37,45,8,240,0,64,0,0,
|
||||
9,223,0,33,42,80,159,36,8,31,39,20,15,16,2,88,163,8,36,37,45,
|
||||
8,240,0,0,2,0,9,223,0,33,43,80,159,36,8,30,39,20,15,16,2,
|
||||
88,163,36,37,49,8,240,0,0,32,0,72,112,97,116,104,45,115,115,45,62,
|
||||
114,107,116,223,0,33,44,80,159,36,8,29,39,20,15,16,2,88,163,36,37,
|
||||
50,8,240,0,128,1,0,67,103,101,116,45,100,105,114,223,0,33,45,80,159,
|
||||
36,8,28,39,20,15,16,2,88,164,8,34,37,45,8,240,0,0,20,0,1,
|
||||
21,112,114,101,112,45,112,108,97,110,101,116,45,114,101,115,111,108,118,101,114,
|
||||
33,37,224,1,0,33,46,80,159,36,8,27,39,20,15,16,2,248,22,163,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,42,8,125,2,3,223,0,33,55,80,159,36,37,37,20,15,16,2,
|
||||
32,0,88,163,8,36,41,52,11,2,10,222,33,56,80,159,36,43,37,20,15,
|
||||
16,2,20,27,158,32,0,88,163,8,36,37,42,11,2,11,222,192,32,0,88,
|
||||
163,8,36,37,42,11,2,11,222,192,80,159,36,44,37,20,15,16,2,247,22,
|
||||
143,2,80,159,36,41,37,20,15,16,2,8,128,8,80,159,36,45,37,20,15,
|
||||
16,2,249,22,167,8,8,128,8,11,80,159,36,46,37,20,15,16,2,88,163,
|
||||
8,36,37,50,8,128,16,2,14,223,0,33,57,80,159,36,47,37,20,15,16,
|
||||
2,88,163,8,36,38,55,8,128,16,2,15,223,0,33,58,80,159,36,48,37,
|
||||
20,15,16,2,247,22,75,80,159,36,49,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,50,37,20,15,16,
|
||||
2,11,80,158,36,51,20,15,16,2,11,80,158,36,52,20,15,16,2,32,0,
|
||||
88,163,36,38,8,25,11,2,20,222,33,64,80,159,36,53,37,20,15,16,2,
|
||||
11,80,158,36,54,20,15,16,2,27,11,20,19,158,36,90,159,37,10,89,161,
|
||||
37,36,10,20,25,96,2,22,88,163,8,36,38,54,8,32,9,224,2,1,33,
|
||||
65,88,163,36,39,49,11,9,223,0,33,66,88,163,36,40,8,32,16,2,8,
|
||||
240,44,120,0,0,8,240,230,248,0,0,9,224,2,1,33,81,207,80,159,36,
|
||||
55,37,20,15,16,2,88,163,36,36,45,8,240,2,1,28,4,2,24,223,0,
|
||||
33,82,80,159,36,8,24,37,20,15,16,2,20,27,158,88,163,8,36,36,45,
|
||||
8,240,0,0,20,4,2,25,223,0,33,83,88,163,8,36,36,45,8,240,0,
|
||||
0,20,4,2,25,223,0,33,84,80,159,36,8,25,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,8,2,23,9,9,9,36,0};
|
||||
EVAL_ONE_SIZED_STR((char *)expr, 7928);
|
||||
}
|
||||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,52,84,0,0,0,0,0,0,0,0,0,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,53,84,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,98,1,
|
||||
0,0,69,35,37,98,117,105,108,116,105,110,65,113,117,111,116,101,29,94,2,
|
||||
|
@ -921,8 +945,8 @@
|
|||
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,224,
|
||||
85,0,0,100,159,2,3,36,36,159,2,4,36,36,159,2,5,36,36,159,2,
|
||||
11,29,94,2,2,68,35,37,107,101,114,110,101,108,11,97,36,11,8,240,12,
|
||||
86,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,113,159,36,16,1,11,16,0,20,26,144,9,2,1,
|
||||
2,1,29,11,11,11,9,9,11,11,11,18,96,11,46,46,46,36,80,158,36,
|
||||
|
|
|
@ -463,7 +463,7 @@ void scheme_init_module_resolver(void)
|
|||
|
||||
o = scheme_make_prim_w_arity(default_module_resolver,
|
||||
"default-module-name-resolver",
|
||||
1, 4);
|
||||
2, 4);
|
||||
|
||||
scheme_set_param(config, MZCONFIG_CURRENT_MODULE_RESOLVER, o);
|
||||
|
||||
|
@ -906,7 +906,7 @@ static Scheme_Object *default_module_resolver(int argc, Scheme_Object **argv)
|
|||
{
|
||||
Scheme_Object *p = argv[0];
|
||||
|
||||
if (argc == 1)
|
||||
if (argc == 2)
|
||||
return scheme_void; /* ignore notify */
|
||||
|
||||
/* if (quote SYMBOL) */
|
||||
|
@ -926,12 +926,12 @@ static Scheme_Object *default_module_resolver(int argc, Scheme_Object **argv)
|
|||
|
||||
static Scheme_Object *check_resolver(int argc, Scheme_Object **argv)
|
||||
{
|
||||
if (scheme_check_proc_arity(NULL, 1, 0, argc, argv)
|
||||
if (scheme_check_proc_arity(NULL, 2, 0, argc, argv)
|
||||
&& scheme_check_proc_arity(NULL, 4, 0, argc, argv))
|
||||
return argv[0];
|
||||
|
||||
scheme_wrong_contract("current-module-name-resolver",
|
||||
"(case-> (any/c . -> . any) (any/c any/c any/c any/c . -> . any))",
|
||||
"(case-> (any/c any/c . -> . any) (any/c any/c any/c any/c . -> . any))",
|
||||
0, argc, argv);
|
||||
|
||||
return NULL;
|
||||
|
@ -1429,7 +1429,7 @@ static Scheme_Object *do_namespace_attach_module(const char *who, int argc, Sche
|
|||
{
|
||||
Scheme_Env *from_env, *to_env, *menv, *menv2;
|
||||
Scheme_Object *todo, *next_phase_todo, *prev_phase_todo;
|
||||
Scheme_Object *name, *notifies = scheme_null, *a[1], *resolver;
|
||||
Scheme_Object *name, *notifies = scheme_null, *a[2], *resolver;
|
||||
Scheme_Object *to_modchain, *from_modchain, *l, *main_modidx;
|
||||
Scheme_Hash_Table *checked, *next_checked, *prev_checked;
|
||||
Scheme_Object *past_checkeds, *future_checkeds, *future_todos, *past_to_modchains, *past_todos;
|
||||
|
@ -2025,8 +2025,9 @@ static Scheme_Object *do_namespace_attach_module(const char *who, int argc, Sche
|
|||
resolver = scheme_get_param(config, MZCONFIG_CURRENT_MODULE_RESOLVER);
|
||||
while (!SCHEME_NULLP(notifies)) {
|
||||
a[0] = SCHEME_CAR(notifies);
|
||||
a[1] = (Scheme_Object *)from_env;
|
||||
|
||||
scheme_apply(resolver, 1, a);
|
||||
scheme_apply(resolver, 2, a);
|
||||
|
||||
notifies = SCHEME_CDR(notifies);
|
||||
}
|
||||
|
@ -6131,7 +6132,8 @@ static Scheme_Object *do_module_execute(Scheme_Object *data, Scheme_Env *genv,
|
|||
Scheme_Object *resolver, *a[1];
|
||||
resolver = scheme_get_param(config, MZCONFIG_CURRENT_MODULE_RESOLVER);
|
||||
a[0] = m->modname;
|
||||
scheme_apply(resolver, 1, a);
|
||||
a[1] = scheme_false;
|
||||
scheme_apply(resolver, 2, a);
|
||||
}
|
||||
|
||||
/* Replacing an already-running or already-syntaxing module? */
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
consistently.)
|
||||
*/
|
||||
|
||||
#define MZSCHEME_VERSION "5.3.0.14"
|
||||
#define MZSCHEME_VERSION "5.3.0.15"
|
||||
|
||||
#define MZSCHEME_VERSION_X 5
|
||||
#define MZSCHEME_VERSION_Y 3
|
||||
#define MZSCHEME_VERSION_Z 0
|
||||
#define MZSCHEME_VERSION_W 14
|
||||
#define MZSCHEME_VERSION_W 15
|
||||
|
||||
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
||||
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
||||
|
|
|
@ -668,7 +668,13 @@
|
|||
"(and a"
|
||||
"(let((am(date-of a modes)))"
|
||||
"(or(and(not bm) am) "
|
||||
"(and am bm(>=(cdr am)(cdr bm)) am)))))))"
|
||||
"(and am bm(>=(cdr am)(cdr bm)) am))))))"
|
||||
"(with-dir*(lambda(base t) "
|
||||
"(parameterize((current-load-relative-directory "
|
||||
"(if(path? base) "
|
||||
" base "
|
||||
"(current-directory))))"
|
||||
"(t)))))"
|
||||
"(lambda(path expect-module)"
|
||||
"(unless(path-string? path)"
|
||||
" (raise-argument-error 'load/use-compiled \"path-string?\" path))"
|
||||
|
@ -680,6 +686,16 @@
|
|||
"(not(car expect-module)))"
|
||||
"(andmap symbol?(cdr expect-module))))"
|
||||
" (raise-argument-error 'load/use-compiled \"(or/c #f symbol? (cons/c (or/c #f symbol?) (non-empty-listof symbol?)))\" path))"
|
||||
"(define name(and expect-module(current-module-declare-name)))"
|
||||
"(define ns-hts(and name"
|
||||
"(hash-ref -module-hash-table-table"
|
||||
"(namespace-module-registry(current-namespace))"
|
||||
" #f)))"
|
||||
"(define use-path/src(and ns-hts(hash-ref(cdr ns-hts) name #f)))"
|
||||
"(if use-path/src"
|
||||
"(parameterize((current-module-declare-source(cadr use-path/src)))"
|
||||
"(with-dir*(caddr use-path/src)"
|
||||
"(lambda()((current-load)(car use-path/src) expect-module))))"
|
||||
"(let*-values(((orig-path)(resolve path))"
|
||||
"((base orig-file dir?)(split-path path))"
|
||||
"((file alt-file)(if expect-module"
|
||||
|
@ -728,14 +744,9 @@
|
|||
" (path-add-suffix alt-file #\".zo\"))))"
|
||||
"(so(get-so file #t))"
|
||||
"(alt-so(get-so alt-file #t))"
|
||||
"(with-dir(lambda(t) "
|
||||
"(parameterize((current-load-relative-directory "
|
||||
"(if(path? base) "
|
||||
" base "
|
||||
"(current-directory))))"
|
||||
"(t))))"
|
||||
"(try-main?(or main-path-d(not alt-path-d)))"
|
||||
"(try-alt?(and alt-file(or alt-path-d(not main-path-d)))))"
|
||||
"(try-alt?(and alt-file(or alt-path-d(not main-path-d))))"
|
||||
"(with-dir(lambda(t)(with-dir* base t))))"
|
||||
"(cond"
|
||||
"((and try-main?"
|
||||
"(date>=? modes so path-d))"
|
||||
|
@ -750,11 +761,13 @@
|
|||
"((and try-main?"
|
||||
"(date>=? modes zo path-d))"
|
||||
" =>(lambda(zo-d)"
|
||||
"(register-zo-path name ns-hts(car zo-d) #f base)"
|
||||
"(parameterize((current-module-declare-source #f))"
|
||||
"(with-dir(lambda()((current-load)(car zo-d) expect-module))))))"
|
||||
"((and try-alt?"
|
||||
"(date>=? modes alt-zo path-d))"
|
||||
" =>(lambda(zo-d)"
|
||||
"(register-zo-path name ns-hts(car zo-d) alt-path base)"
|
||||
"(parameterize((current-module-declare-source alt-path))"
|
||||
"(with-dir(lambda()((current-load)(car zo-d) expect-module))))))"
|
||||
"((or(not(pair? expect-module))"
|
||||
|
@ -765,7 +778,10 @@
|
|||
"(parameterize((current-module-declare-source(and expect-module "
|
||||
"(not try-main?)"
|
||||
" p)))"
|
||||
"(with-dir(lambda()((current-load) p expect-module)))))))))))))"
|
||||
"(with-dir(lambda()((current-load) p expect-module))))))))))))))"
|
||||
"(define(register-zo-path name ns-hts path src-path base)"
|
||||
"(when ns-hts"
|
||||
"(hash-set!(cdr ns-hts) name(list path src-path base))))"
|
||||
"(define-values(default-reader-guard)"
|
||||
"(lambda(path) path))"
|
||||
"(define-values(-module-hash-table-table)(make-weak-hasheq)) "
|
||||
|
@ -815,23 +831,39 @@
|
|||
" (set! planet-resolver (dynamic-require '(lib \"planet/resolver.rkt\") 'planet-module-name-resolver))))))"
|
||||
"(define-values(standard-module-name-resolver)"
|
||||
"(case-lambda "
|
||||
"((s) "
|
||||
"((s from-namespace) "
|
||||
"(unless(resolved-module-path? s)"
|
||||
"(raise-argument-error 'standard-module-name-resolver"
|
||||
" \"resolved-module-path?\""
|
||||
" s))"
|
||||
"(unless(or(not from-namespace)(namespace? from-namespace))"
|
||||
"(raise-argument-error 'standard-module-name-resolver"
|
||||
" \"(or/c #f namespace?)\""
|
||||
" from-namespace))"
|
||||
"(when planet-resolver"
|
||||
"(planet-resolver s))"
|
||||
"(let((ht(or(hash-ref -module-hash-table-table"
|
||||
"(let((hts(or(hash-ref -module-hash-table-table"
|
||||
"(namespace-module-registry(current-namespace))"
|
||||
" #f)"
|
||||
"(let((ht(make-hasheq)))"
|
||||
"(let((hts(cons(make-hasheq)(make-hasheq))))"
|
||||
"(hash-set! -module-hash-table-table"
|
||||
"(namespace-module-registry(current-namespace))"
|
||||
" ht)"
|
||||
" ht))))"
|
||||
"(hash-set! ht s 'attach)))"
|
||||
"((s relto stx)(standard-module-name-resolver s relto stx #t))"
|
||||
" hts)"
|
||||
" hts))))"
|
||||
"(hash-set!(car hts) s 'declared)"
|
||||
"(when from-namespace"
|
||||
"(let((root-name(if(pair?(resolved-module-path-name s))"
|
||||
"(make-resolved-module-path(car(resolved-module-path-name s)))"
|
||||
" s))"
|
||||
"(from-hts(hash-ref -module-hash-table-table"
|
||||
"(namespace-module-registry from-namespace)"
|
||||
" #f)))"
|
||||
"(when from-hts"
|
||||
"(let((use-path/src(hash-ref(cdr from-hts) root-name #f)))"
|
||||
"(when use-path/src"
|
||||
"(hash-set!(cdr hts) root-name use-path/src))))))))"
|
||||
"((s relto stx) "
|
||||
"(standard-module-name-resolver s relto stx #t)) "
|
||||
"((s relto stx load?)"
|
||||
"(unless(module-path? s)"
|
||||
"(if stx"
|
||||
|
@ -1048,21 +1080,21 @@
|
|||
"(let*((root-modname(if(vector? s-parsed)"
|
||||
"(vector-ref s-parsed 4)"
|
||||
"(make-resolved-module-path filename)))"
|
||||
"(ht(or(hash-ref -module-hash-table-table"
|
||||
"(hts(or(hash-ref -module-hash-table-table"
|
||||
"(namespace-module-registry(current-namespace))"
|
||||
" #f)"
|
||||
"(let((ht(make-hasheq)))"
|
||||
"(let((hts(cons(make-hasheq)(make-hasheq))))"
|
||||
"(hash-set! -module-hash-table-table"
|
||||
"(namespace-module-registry(current-namespace))"
|
||||
" ht)"
|
||||
" ht)))"
|
||||
" hts)"
|
||||
" hts)))"
|
||||
"(modname(if subm-path"
|
||||
"(make-resolved-module-path "
|
||||
"(cons(resolved-module-path-name root-modname)"
|
||||
" subm-path))"
|
||||
" root-modname)))"
|
||||
"(when load?"
|
||||
"(let((got(hash-ref ht modname #f)))"
|
||||
"(let((got(hash-ref(car hts) modname #f)))"
|
||||
"(unless got"
|
||||
"(let((loading"
|
||||
"(let((tag(if(continuation-prompt-available? -loading-prompt-tag)"
|
||||
|
@ -1101,11 +1133,10 @@
|
|||
" filename "
|
||||
"(let((sym(string->symbol(path->string no-sfx))))"
|
||||
"(if subm-path"
|
||||
"(if(hash-ref ht root-modname #f)"
|
||||
"(if(hash-ref(car hts) root-modname #f)"
|
||||
"(cons #f subm-path)"
|
||||
"(cons sym subm-path))"
|
||||
" sym))))))))"
|
||||
"(hash-set! ht modname #t))))"
|
||||
" sym)))))))))))"
|
||||
"(when(and(not(vector? s-parsed))"
|
||||
"(or(string? s)"
|
||||
"(symbol? s)"
|
||||
|
|
|
@ -777,7 +777,13 @@
|
|||
(and a
|
||||
(let ([am (date-of a modes)])
|
||||
(or (and (not bm) am)
|
||||
(and am bm (>= (cdr am) (cdr bm)) am)))))])
|
||||
(and am bm (>= (cdr am) (cdr bm)) am)))))]
|
||||
[with-dir* (lambda (base t)
|
||||
(parameterize ([current-load-relative-directory
|
||||
(if (path? base)
|
||||
base
|
||||
(current-directory))])
|
||||
(t)))])
|
||||
(lambda (path expect-module)
|
||||
(unless (path-string? path)
|
||||
(raise-argument-error 'load/use-compiled "path-string?" path))
|
||||
|
@ -789,100 +795,113 @@
|
|||
(not (car expect-module)))
|
||||
(andmap symbol? (cdr expect-module))))
|
||||
(raise-argument-error 'load/use-compiled "(or/c #f symbol? (cons/c (or/c #f symbol?) (non-empty-listof symbol?)))" path))
|
||||
(let*-values ([(orig-path) (resolve path)]
|
||||
[(base orig-file dir?) (split-path path)]
|
||||
[(file alt-file) (if expect-module
|
||||
(let* ([b (path->bytes orig-file)]
|
||||
[len (bytes-length b)])
|
||||
(cond
|
||||
[(and (len . >= . 4)
|
||||
(bytes=? #".rkt" (subbytes b (- len 4))))
|
||||
;; .rkt => try .rkt then .ss
|
||||
(values orig-file
|
||||
(bytes->path (bytes-append (subbytes b 0 (- len 4)) #".ss")))]
|
||||
[else
|
||||
;; No search path
|
||||
(values orig-file #f)]))
|
||||
(values orig-file #f))]
|
||||
[(path) (if (eq? file orig-file)
|
||||
orig-path
|
||||
(build-path base file))]
|
||||
[(alt-path) (and alt-file
|
||||
(if (eq? alt-file orig-file)
|
||||
orig-path
|
||||
(build-path base alt-file)))]
|
||||
[(base) (if (eq? base 'relative) 'same base)]
|
||||
[(modes) (use-compiled-file-paths)])
|
||||
(let* ([main-path-d (date-of-1 path)]
|
||||
[alt-path-d (and alt-path
|
||||
(not main-path-d)
|
||||
(date-of-1 alt-path))]
|
||||
[path-d (or main-path-d alt-path-d)]
|
||||
[get-so (lambda (file rep-sfx?)
|
||||
(lambda (compiled-dir)
|
||||
(build-path base
|
||||
compiled-dir
|
||||
"native"
|
||||
(system-library-subpath)
|
||||
(if rep-sfx?
|
||||
(path-add-suffix
|
||||
file
|
||||
dll-suffix)
|
||||
file))))]
|
||||
[zo (lambda (compiled-dir)
|
||||
(build-path base
|
||||
compiled-dir
|
||||
(path-add-suffix file #".zo")))]
|
||||
[alt-zo (lambda (compiled-dir)
|
||||
(define name (and expect-module (current-module-declare-name)))
|
||||
(define ns-hts (and name
|
||||
(hash-ref -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
#f)))
|
||||
(define use-path/src (and ns-hts (hash-ref (cdr ns-hts) name #f)))
|
||||
(if use-path/src
|
||||
;; Use previous decision of .zo vs. source:
|
||||
(parameterize ([current-module-declare-source (cadr use-path/src)])
|
||||
(with-dir* (caddr use-path/src)
|
||||
(lambda () ((current-load) (car use-path/src) expect-module))))
|
||||
;; Check .zo vs. src dates, etc.:
|
||||
(let*-values ([(orig-path) (resolve path)]
|
||||
[(base orig-file dir?) (split-path path)]
|
||||
[(file alt-file) (if expect-module
|
||||
(let* ([b (path->bytes orig-file)]
|
||||
[len (bytes-length b)])
|
||||
(cond
|
||||
[(and (len . >= . 4)
|
||||
(bytes=? #".rkt" (subbytes b (- len 4))))
|
||||
;; .rkt => try .rkt then .ss
|
||||
(values orig-file
|
||||
(bytes->path (bytes-append (subbytes b 0 (- len 4)) #".ss")))]
|
||||
[else
|
||||
;; No search path
|
||||
(values orig-file #f)]))
|
||||
(values orig-file #f))]
|
||||
[(path) (if (eq? file orig-file)
|
||||
orig-path
|
||||
(build-path base file))]
|
||||
[(alt-path) (and alt-file
|
||||
(if (eq? alt-file orig-file)
|
||||
orig-path
|
||||
(build-path base alt-file)))]
|
||||
[(base) (if (eq? base 'relative) 'same base)]
|
||||
[(modes) (use-compiled-file-paths)])
|
||||
(let* ([main-path-d (date-of-1 path)]
|
||||
[alt-path-d (and alt-path
|
||||
(not main-path-d)
|
||||
(date-of-1 alt-path))]
|
||||
[path-d (or main-path-d alt-path-d)]
|
||||
[get-so (lambda (file rep-sfx?)
|
||||
(lambda (compiled-dir)
|
||||
(build-path base
|
||||
compiled-dir
|
||||
"native"
|
||||
(system-library-subpath)
|
||||
(if rep-sfx?
|
||||
(path-add-suffix
|
||||
file
|
||||
dll-suffix)
|
||||
file))))]
|
||||
[zo (lambda (compiled-dir)
|
||||
(build-path base
|
||||
compiled-dir
|
||||
(path-add-suffix alt-file #".zo")))]
|
||||
[so (get-so file #t)]
|
||||
[alt-so (get-so alt-file #t)]
|
||||
[with-dir (lambda (t)
|
||||
(parameterize ([current-load-relative-directory
|
||||
(if (path? base)
|
||||
base
|
||||
(current-directory))])
|
||||
(t)))]
|
||||
[try-main? (or main-path-d (not alt-path-d))]
|
||||
[try-alt? (and alt-file (or alt-path-d (not main-path-d)))])
|
||||
(cond
|
||||
[(and try-main?
|
||||
(date>=? modes so path-d))
|
||||
=> (lambda (so-d)
|
||||
(parameterize ([current-module-declare-source #f])
|
||||
(with-dir (lambda () ((current-load-extension) (car so-d) expect-module)))))]
|
||||
[(and try-alt?
|
||||
(date>=? modes alt-so alt-path-d))
|
||||
=> (lambda (so-d)
|
||||
(parameterize ([current-module-declare-source alt-path])
|
||||
(with-dir (lambda () ((current-load-extension) (car so-d) expect-module)))))]
|
||||
[(and try-main?
|
||||
(date>=? modes zo path-d))
|
||||
=> (lambda (zo-d)
|
||||
(parameterize ([current-module-declare-source #f])
|
||||
(with-dir (lambda () ((current-load) (car zo-d) expect-module)))))]
|
||||
[(and try-alt?
|
||||
(date>=? modes alt-zo path-d))
|
||||
=> (lambda (zo-d)
|
||||
(parameterize ([current-module-declare-source alt-path])
|
||||
(with-dir (lambda () ((current-load) (car zo-d) expect-module)))))]
|
||||
[(or (not (pair? expect-module))
|
||||
(car expect-module))
|
||||
(let ([p (if try-main? path alt-path)])
|
||||
;; "quiet" failure when asking for a submodule:
|
||||
(unless (and (pair? expect-module)
|
||||
(not (file-exists? p)))
|
||||
(parameterize ([current-module-declare-source (and expect-module
|
||||
(not try-main?)
|
||||
p)])
|
||||
(with-dir (lambda () ((current-load) p expect-module))))))]))))))
|
||||
(path-add-suffix file #".zo")))]
|
||||
[alt-zo (lambda (compiled-dir)
|
||||
(build-path base
|
||||
compiled-dir
|
||||
(path-add-suffix alt-file #".zo")))]
|
||||
[so (get-so file #t)]
|
||||
[alt-so (get-so alt-file #t)]
|
||||
[try-main? (or main-path-d (not alt-path-d))]
|
||||
[try-alt? (and alt-file (or alt-path-d (not main-path-d)))]
|
||||
[with-dir (lambda (t) (with-dir* base t))])
|
||||
(cond
|
||||
[(and try-main?
|
||||
(date>=? modes so path-d))
|
||||
=> (lambda (so-d)
|
||||
(parameterize ([current-module-declare-source #f])
|
||||
(with-dir (lambda () ((current-load-extension) (car so-d) expect-module)))))]
|
||||
[(and try-alt?
|
||||
(date>=? modes alt-so alt-path-d))
|
||||
=> (lambda (so-d)
|
||||
(parameterize ([current-module-declare-source alt-path])
|
||||
(with-dir (lambda () ((current-load-extension) (car so-d) expect-module)))))]
|
||||
[(and try-main?
|
||||
(date>=? modes zo path-d))
|
||||
=> (lambda (zo-d)
|
||||
(register-zo-path name ns-hts (car zo-d) #f base)
|
||||
(parameterize ([current-module-declare-source #f])
|
||||
(with-dir (lambda () ((current-load) (car zo-d) expect-module)))))]
|
||||
[(and try-alt?
|
||||
(date>=? modes alt-zo path-d))
|
||||
=> (lambda (zo-d)
|
||||
(register-zo-path name ns-hts (car zo-d) alt-path base)
|
||||
(parameterize ([current-module-declare-source alt-path])
|
||||
(with-dir (lambda () ((current-load) (car zo-d) expect-module)))))]
|
||||
[(or (not (pair? expect-module))
|
||||
(car expect-module))
|
||||
(let ([p (if try-main? path alt-path)])
|
||||
;; "quiet" failure when asking for a submodule:
|
||||
(unless (and (pair? expect-module)
|
||||
(not (file-exists? p)))
|
||||
(parameterize ([current-module-declare-source (and expect-module
|
||||
(not try-main?)
|
||||
p)])
|
||||
(with-dir (lambda () ((current-load) p expect-module))))))])))))))
|
||||
|
||||
(define (register-zo-path name ns-hts path src-path base)
|
||||
(when ns-hts
|
||||
(hash-set! (cdr ns-hts) name (list path src-path base))))
|
||||
|
||||
(define-values (default-reader-guard)
|
||||
(lambda (path) path))
|
||||
|
||||
(define-values (-module-hash-table-table) (make-weak-hasheq)) ; weak map from namespace to module ht
|
||||
(define-values (-module-hash-table-table) (make-weak-hasheq)) ; weak map from namespace to pair of module-name hts
|
||||
|
||||
;; weak map from `lib' path + corrent-library-paths to symbols:
|
||||
;; We'd like to use a weak `equal?'-based hash table here,
|
||||
|
@ -939,25 +958,42 @@
|
|||
(set! planet-resolver (dynamic-require '(lib "planet/resolver.rkt") 'planet-module-name-resolver))))))
|
||||
(define-values (standard-module-name-resolver)
|
||||
(case-lambda
|
||||
[(s)
|
||||
[(s from-namespace)
|
||||
(unless (resolved-module-path? s)
|
||||
(raise-argument-error 'standard-module-name-resolver
|
||||
"resolved-module-path?"
|
||||
s))
|
||||
;; Just register s as loaded
|
||||
(unless (or (not from-namespace) (namespace? from-namespace))
|
||||
(raise-argument-error 'standard-module-name-resolver
|
||||
"(or/c #f namespace?)"
|
||||
from-namespace))
|
||||
(when planet-resolver
|
||||
;; Let planet resolver register, too:
|
||||
(planet-resolver s))
|
||||
(let ([ht (or (hash-ref -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
#f)
|
||||
(let ([ht (make-hasheq)])
|
||||
(hash-set! -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
ht)
|
||||
ht))])
|
||||
(hash-set! ht s 'attach))]
|
||||
[(s relto stx) (standard-module-name-resolver s relto stx #t)]
|
||||
;; Register s as loaded:
|
||||
(let ([hts (or (hash-ref -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
#f)
|
||||
(let ([hts (cons (make-hasheq) (make-hasheq))])
|
||||
(hash-set! -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
hts)
|
||||
hts))])
|
||||
(hash-set! (car hts) s 'declared)
|
||||
;; If attach from another namespace, copy over source-file path, if any:
|
||||
(when from-namespace
|
||||
(let ([root-name (if (pair? (resolved-module-path-name s))
|
||||
(make-resolved-module-path (car (resolved-module-path-name s)))
|
||||
s)]
|
||||
[from-hts (hash-ref -module-hash-table-table
|
||||
(namespace-module-registry from-namespace)
|
||||
#f)])
|
||||
(when from-hts
|
||||
(let ([use-path/src (hash-ref (cdr from-hts) root-name #f)])
|
||||
(when use-path/src
|
||||
(hash-set! (cdr hts) root-name use-path/src)))))))]
|
||||
[(s relto stx) ; for backward-compatibility
|
||||
(standard-module-name-resolver s relto stx #t)]
|
||||
[(s relto stx load?)
|
||||
;; If stx is not #f, raise syntax error for ill-formed paths
|
||||
(unless (module-path? s)
|
||||
|
@ -1181,14 +1217,14 @@
|
|||
(let* ([root-modname (if (vector? s-parsed)
|
||||
(vector-ref s-parsed 4)
|
||||
(make-resolved-module-path filename))]
|
||||
[ht (or (hash-ref -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
#f)
|
||||
(let ([ht (make-hasheq)])
|
||||
(hash-set! -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
ht)
|
||||
ht))]
|
||||
[hts (or (hash-ref -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
#f)
|
||||
(let ([hts (cons (make-hasheq) (make-hasheq))])
|
||||
(hash-set! -module-hash-table-table
|
||||
(namespace-module-registry (current-namespace))
|
||||
hts)
|
||||
hts))]
|
||||
[modname (if subm-path
|
||||
(make-resolved-module-path
|
||||
(cons (resolved-module-path-name root-modname)
|
||||
|
@ -1196,7 +1232,7 @@
|
|||
root-modname)])
|
||||
;; Loaded already?
|
||||
(when load?
|
||||
(let ([got (hash-ref ht modname #f)])
|
||||
(let ([got (hash-ref (car hts) modname #f)])
|
||||
(unless got
|
||||
;; Currently loading?
|
||||
(let ([loading
|
||||
|
@ -1236,15 +1272,12 @@
|
|||
filename
|
||||
(let ([sym (string->symbol (path->string no-sfx))])
|
||||
(if subm-path
|
||||
(if (hash-ref ht root-modname #f)
|
||||
(if (hash-ref (car hts) root-modname #f)
|
||||
;; Root is already loaded, so only use .zo
|
||||
(cons #f subm-path)
|
||||
;; Root isn't loaded, so it's ok to load form source:
|
||||
(cons sym subm-path))
|
||||
sym))))))))
|
||||
;; Possibly redundant, because notification should have arrived,
|
||||
;; but non-redundant when a requested submodule wasn't found:
|
||||
(hash-set! ht modname #t))))
|
||||
sym)))))))))))
|
||||
;; If a `lib' path, cache pathname manipulations
|
||||
(when (and (not (vector? s-parsed))
|
||||
(or (string? s)
|
||||
|
|
Loading…
Reference in New Issue
Block a user